diff --git a/scm-ui/ui-components/package.json b/scm-ui/ui-components/package.json index 03a0f0d3d5..1c0a14729c 100644 --- a/scm-ui/ui-components/package.json +++ b/scm-ui/ui-components/package.json @@ -68,12 +68,20 @@ "react-diff-view": "^2.4.1", "react-dom": "^17.0.1", "react-i18next": "^10.13.1", - "react-markdown": "^5.0.3", "react-router-dom": "^5.1.2", "react-select": "^2.1.2", "react-syntax-highlighter": "^15.2.1", "refractor": "^3.0.0", - "remark-gfm": "^1.0.0" + "remark-gfm": "^1.0.0", + "rehype-react": "^6.2.0", + "remark-rehype": "^8.0.0", + "remark-parse": "^9.0.0", + "rehype-sanitize": "^4.0.0", + "rehype-raw": "^5.1.0", + "unified": "^9.2.1", + "hast-util-sanitize": "^3.0.2", + "rehype-slug": "^4.0.1", + "deepmerge": "^4.2.2" }, "babel": { "presets": [ diff --git a/scm-ui/ui-components/src/__resources__/markdown-changelog.md.ts b/scm-ui/ui-components/src/__resources__/markdown-changelog.md.ts new file mode 100644 index 0000000000..c5ff8a0add --- /dev/null +++ b/scm-ui/ui-components/src/__resources__/markdown-changelog.md.ts @@ -0,0 +1,585 @@ +export default ` +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +# Compl_icated_H€aDer + +## [2.16.0] - 2021-03-26 +### Added +- Metrics for http requests ([#1586](https://github.com/scm-manager/scm-manager/issues/1586)) +- Metrics for executor services ([#1586](https://github.com/scm-manager/scm-manager/issues/1586)) +- Metrics about logging, file descriptors, process threads and process memory ([#1609](https://github.com/scm-manager/scm-manager/pull/1609)) +- Metrics for events ([#1601](https://github.com/scm-manager/scm-manager/pull/1601)) +- Authentication and access metrics ([#1595](https://github.com/scm-manager/scm-manager/pull/1595)) +- Adds metrics over lifetime duration of working copies ([#1591](https://github.com/scm-manager/scm-manager/pull/1591)) +- Collect guava caching statistics as metrics ([#1590](https://github.com/scm-manager/scm-manager/pull/1590)) +- Add global flag to enable/disable api keys ([#1606](https://github.com/scm-manager/scm-manager/pull/1606)) + +### Fixed +- Adjust path and filename validation to prevent path traversal ([#1604](https://github.com/scm-manager/scm-manager/pull/1604)) +- Wrong subject context for asynchronous subscriber ([#1601](https://github.com/scm-manager/scm-manager/pull/1601)) +- Fix repository creation route from repository namespace overview page ([#1602](https://github.com/scm-manager/scm-manager/pull/1602)) +- external nav links now correctly collapse when used in a menu ([#1596](https://github.com/scm-manager/scm-manager/pull/1596)) +- Response with exception stack trace for invalid urls ([#1605](https://github.com/scm-manager/scm-manager/pull/1605)) +- Do not show repositories on overview for not existing namespace ([#1608](https://github.com/scm-manager/scm-manager/pull/1608)) + +### Changed +- Show "CUSTOM" name instead empty entry for permission roles ([#1597](https://github.com/scm-manager/scm-manager/pull/1597)) +- Improve error messages for invalid media types ([#1607](https://github.com/scm-manager/scm-manager/pull/1607)) +- Allow all UTF-8 characters except URL identifiers as user and group names and for namespaces. ([#1600](https://github.com/scm-manager/scm-manager/pull/1600)) + +## [2.15.1] - 2021-03-17 +### Fixed +- Encode revision on extension points to fix breaking change ([#1585](https://github.com/scm-manager/scm-manager/pull/1585)) +- Index link collection in repository initialize extensions ([#1594](https://github.com/scm-manager/scm-manager/issues/1588) and [#1587](https://github.com/scm-manager/scm-manager/issues/1594)) +- Mercurial encoding configuration per repository ([#1577](https://github.com/scm-manager/scm-manager/issues/1577), [#1583](https://github.com/scm-manager/scm-manager/issues/1583)) +- Authentication names in open api spec ([#1582](https://github.com/scm-manager/scm-manager/issues/1582)) +- Sometimes no redirect after login ([#1592](https://github.com/scm-manager/scm-manager/pull/1592)) +- Navigate after search ([#1589](https://github.com/scm-manager/scm-manager/pull/1589)) +- Diff for mercurial and subversion ([#1588](https://github.com/scm-manager/scm-manager/issues/1588) and [#1587](https://github.com/scm-manager/scm-manager/issues/1587)) + +## [2.15.0] - 2021-03-12 +### Added +- Create api for markdown ast plugins ([#1578](https://github.com/scm-manager/scm-manager/pull/1578)) +- Partial diff ([#1581](https://github.com/scm-manager/scm-manager/issues/1581)) +- Added filepath search ([#1568](https://github.com/scm-manager/scm-manager/issues/1568)) +- API for metrics ([#1576](https://github.com/scm-manager/scm-manager/issues/1576)) +- Add repository-specific non-fast-forward disallowed option ([#1579](https://github.com/scm-manager/scm-manager/issues/1579)) + +### Fixed +- Fix wrapping of title and actions in source view ([#1569](https://github.com/scm-manager/scm-manager/issues/1569)) +- Split SetupContextListener logic into new Privileged Startup API ([#1573](https://github.com/scm-manager/scm-manager/pull/1573)) +- Mark configuration files in debian package ([#1574](https://github.com/scm-manager/scm-manager/issues/1574)) + +## [2.14.1] - 2021-03-03 +### Fixed +- Prevent breadcrumb overflow and shrink large elements ([#1563](https://github.com/scm-manager/scm-manager/pull/1563)) +- Clarify that FileUpload component does not upload directly ([#1566](https://github.com/scm-manager/scm-manager/pull/1566)) +- Prevent xss from stored markdown ([#1566](https://github.com/scm-manager/scm-manager/pull/1566)) +- Fix endless loading spinner for sources of empty repositories ([#1565](https://github.com/scm-manager/scm-manager/issues/1565)) +- Fix missing permalink button to markdown headings ([#1564](https://github.com/scm-manager/scm-manager/pull/1564)) +- Fix redirect after logout if is set + +## [2.14.0] - 2021-03-01 +### Added +- Repository data can be migrated independently to enable the import of dumps from older versions ([#1526](https://github.com/scm-manager/scm-manager/pull/1526)) +- XML attribute in root element of config entry stores ([#1545](https://github.com/scm-manager/scm-manager/pull/1545)) +- Add option to encrypt repository exports with a password and decrypt them on repository import ([#1533](https://github.com/scm-manager/scm-manager/pull/1533)) +- Make repository export asynchronous. ([#1533](https://github.com/scm-manager/scm-manager/pull/1533)) +- Lock repository to "read-only" access during export ([#1519](https://github.com/scm-manager/scm-manager/pull/1519)) +- Warn user to not leave page during repository import ([#1536](https://github.com/scm-manager/scm-manager/pull/1536)) +- Import repository permissions from repository archive ([#1520](https://github.com/scm-manager/scm-manager/pull/1520)) +- Added import protocols ([#1558](https://github.com/scm-manager/scm-manager/pull/1558)) + +### Fixed +- Loading of cache configuration from plugins ([#1540](https://github.com/scm-manager/scm-manager/pull/1540)) +- Missing error message for wrong password ([#1527](https://github.com/scm-manager/scm-manager/pull/1527)) +- Sporadic error in reading git pack files ([#1518](https://github.com/scm-manager/scm-manager/issues/1518)) +- Fix permission check for branch deletion ([#1515](https://github.com/scm-manager/scm-manager/pull/1515)) +- Fix broken mercurial http post args configuration ([#1532](https://github.com/scm-manager/scm-manager/issues/1532)) +- Do not resolve external groups for system accounts ([#1541](https://github.com/scm-manager/scm-manager/pull/1541)) +- Wrong redirect on paginated overviews ([#1535](https://github.com/scm-manager/scm-manager/pull/1535)) + +### Changed +- Config entry stores are handled explicitly in exports ([#1545](https://github.com/scm-manager/scm-manager/pull/1545)) +- Allow usage of cache as shiro authentication and authorization cache ([#1540](https://github.com/scm-manager/scm-manager/pull/1540)) +- Implement new changelog process ([#1517](https://github.com/scm-manager/scm-manager/issues/1517)) +- Fire post receive repository hook event after the repository import has been finished. ([#1544](https://github.com/scm-manager/scm-manager/pull/1544)) +- improve frontend performance with stale while revalidate pattern ([#1555](https://github.com/scm-manager/scm-manager/pull/1555)) +- Change the order of files inside the repository archive ([#1538](https://github.com/scm-manager/scm-manager/pull/1538)) + +## [2.13.0] - 2021-01-29 +### Added +- Repository export for Subversion ([#1488](https://github.com/scm-manager/scm-manager/pull/1488)) +- Provide more options for Helm chart ([#1485](https://github.com/scm-manager/scm-manager/pull/1485)) +- Option to create a permanent link to a source file ([#1489](https://github.com/scm-manager/scm-manager/pull/1489)) +- Markdown codeblock renderer extension point ([#1492](https://github.com/scm-manager/scm-manager/pull/1492)) +- Java version added to plugin center url ([#1494](https://github.com/scm-manager/scm-manager/pull/1494)) +- Font ttf-dejavu included oci image ([#1498](https://github.com/scm-manager/scm-manager/issues/1498)) +- Repository import and export with metadata for Subversion ([#1501](https://github.com/scm-manager/scm-manager/pull/1501)) +- API for store rename/delete in update steps ([#1505](https://github.com/scm-manager/scm-manager/pull/1505)) +- Import and export for Git via dump file ([#1507](https://github.com/scm-manager/scm-manager/pull/1507)) +- Import and export for Mercurial via dump file ([#1511](https://github.com/scm-manager/scm-manager/pull/1511)) + +### Changed +- Directory name for git LFS files ([#1504](https://github.com/scm-manager/scm-manager/pull/1504)) +- Temporary data for repositories is kept in the repository directory, not in a global directory ([#1510](https://github.com/scm-manager/scm-manager/pull/1510)) +- Migrate integration tests to bdd ([#1497](https://github.com/scm-manager/scm-manager/pull/1497)) +- Layout of proxy settings ([#1502](https://github.com/scm-manager/scm-manager/pull/1502)) +- Apply test ids to production builds for usage in e2e tests ([#1499](https://github.com/scm-manager/scm-manager/pull/1499)) +- Bump google guava version to 30.1-jre +- Refactor table component so that it can be styled by styled-components ([#1503](https://github.com/scm-manager/scm-manager/pull/1503)) +- Enrich styleguide with new features, rules and changes ([#1506](https://github.com/scm-manager/scm-manager/pull/1506)) + +### Fixed +- Add explicit provider setup for bouncy castle ([#1500](https://github.com/scm-manager/scm-manager/pull/1500)) +- Repository contact information is editable ([#1508](https://github.com/scm-manager/scm-manager/pull/1508)) +- Usage of custom realm description for scm protocols ([#1512](https://github.com/scm-manager/scm-manager/pull/1512)) + +## [2.12.0] - 2020-12-17 +### Added +- Add repository import via dump file for Subversion ([#1471](https://github.com/scm-manager/scm-manager/pull/1471)) +- Add support for permalinks to lines in source code view ([#1472](https://github.com/scm-manager/scm-manager/pull/1472)) +- Add "archive" flag for repositories to make them immutable ([#1477](https://github.com/scm-manager/scm-manager/pull/1477)) + +### Changed +- Implement mercurial cgi protocol as extension ([#1458](https://github.com/scm-manager/scm-manager/pull/1458)) + +### Fixed +- Add "Api Key" page link to sub-navigation of "User" and "Me" sections ([#1464](https://github.com/scm-manager/scm-manager/pull/1464)) +- Empty page on repository namespace filter ([#1476](https://github.com/scm-manager/scm-manager/pull/1476)) +- Usage of namespace filter and search action together on repository overview ([#1476](https://github.com/scm-manager/scm-manager/pull/1476)) +- Fix tooltip arrow height in firefox ([#1479](https://github.com/scm-manager/scm-manager/pull/1479)) +- Accidentally blocked requests with non ascii characters ([#1480](https://github.com/scm-manager/scm-manager/issues/1480) and [#1469](https://github.com/scm-manager/scm-manager/issues/1469)) + +## [2.11.1] - 2020-12-07 +### Fixed +- Initialization of new git repository with master set as default branch ([#1467](https://github.com/scm-manager/scm-manager/issues/1467) and [#1470](https://github.com/scm-manager/scm-manager/pull/1470)) + +## [2.11.0] - 2020-12-04 +### Added +- Add tooltips to short links on repository overview ([#1441](https://github.com/scm-manager/scm-manager/pull/1441)) +- Show the date of the last commit for branches in the frontend ([#1439](https://github.com/scm-manager/scm-manager/pull/1439)) +- Unify and add description to key view across user settings ([#1440](https://github.com/scm-manager/scm-manager/pull/1440)) +- Healthcheck for docker image ([#1428](https://github.com/scm-manager/scm-manager/issues/1428) and [#1454](https://github.com/scm-manager/scm-manager/issues/1454)) +- Tags can now be added and deleted through the ui ([#1456](https://github.com/scm-manager/scm-manager/pull/1456)) +- The ui now displays tag signatures ([#1456](https://github.com/scm-manager/scm-manager/pull/1456)) +- Repository import via URL for git ([#1460](https://github.com/scm-manager/scm-manager/pull/1460)) +- Repository import via URL for hg ([#1463](https://github.com/scm-manager/scm-manager/pull/1463)) + +### Changed +- Send mercurial hook callbacks over separate tcp socket instead of http ([#1416](https://github.com/scm-manager/scm-manager/pull/1416)) + +### Fixed +- Language detection of files with interpreter parameters e.g.: \`#!/usr/bin/make -f\` ([#1450](https://github.com/scm-manager/scm-manager/issues/1450)) +- Unexpected mercurial server pool stop ([#1446](https://github.com/scm-manager/scm-manager/issues/1446) and [#1457](https://github.com/scm-manager/scm-manager/issues/1457)) + +## [2.10.1] - 2020-11-24 +### Fixed +- Improved logging of failures during plugin installation ([#1442](https://github.com/scm-manager/scm-manager/pull/1442)) +- Do not throw exception when plugin file does not exist on cancelled installation ([#1442](https://github.com/scm-manager/scm-manager/pull/1442)) + +## [2.10.0] - 2020-11-20 +### Added +- Delete branches directly in the UI ([#1422](https://github.com/scm-manager/scm-manager/pull/1422)) +- Lookup command which provides further repository information ([#1415](https://github.com/scm-manager/scm-manager/pull/1415)) +- Include messages from scm protocol in modification or merge errors ([#1420](https://github.com/scm-manager/scm-manager/pull/1420)) +- Enhance trace api to accepted status codes ([#1430](https://github.com/scm-manager/scm-manager/pull/1430)) +- Add examples to core resources to simplify usage of rest api ([#1434](https://github.com/scm-manager/scm-manager/pull/1434)) + +### Fixed +- Missing close of hg diff command ([#1417](https://github.com/scm-manager/scm-manager/pull/1417)) +- Error on repository initialization with least-privilege user ([#1414](https://github.com/scm-manager/scm-manager/pull/1414)) +- Adhere to git quiet flag ([#1421](https://github.com/scm-manager/scm-manager/pull/1421)) +- Resolve svn binary diffs properly [#1427](https://github.com/scm-manager/scm-manager/pull/1427) + +## [2.9.1] - 2020-11-11 +### Fixed +- German translation for repositories view + +## [2.9.0] - 2020-11-06 +### Added +- Tracing api ([#1393](https://github.com/scm-manager/scm-manager/pull/#1393)) +- Automatic user converter for external users ([#1380](https://github.com/scm-manager/scm-manager/pull/1380)) +- Create _authenticated group on setup ([#1396](https://github.com/scm-manager/scm-manager/pull/1396)) +- The name of the initial git branch can be configured and is set to \`main\` by default ([#1399](https://github.com/scm-manager/scm-manager/pull/1399)) + +### Fixed +- Internal server error for git sub modules without tree object ([#1397](https://github.com/scm-manager/scm-manager/pull/1397)) +- Do not expose subversion commit with id 0 ([#1395](https://github.com/scm-manager/scm-manager/pull/1395)) +- Cloning of Mercurial repositories with api keys ([#1407](https://github.com/scm-manager/scm-manager/pull/1407)) +- Disable cloning repositories via ssh for anonymous users ([#1403](https://github.com/scm-manager/scm-manager/pull/1403)) +- Support anonymous file download through rest api for non-browser clients (e.g. curl or postman) when anonymous mode is set to protocol-only ([#1402](https://github.com/scm-manager/scm-manager/pull/1402)) +- SVN diff with property changes ([#1400](https://github.com/scm-manager/scm-manager/pull/1400)) +- Branches link in repository overview ([#1404](https://github.com/scm-manager/scm-manager/pull/1404)) + +## [2.8.0] - 2020-10-27 +### Added +- Generation of email addresses for users, where none is configured ([#1370](https://github.com/scm-manager/scm-manager/pull/1370)) +- Source code fullscreen view ([#1376](https://github.com/scm-manager/scm-manager/pull/1376)) +- Plugins can now expose ui components to be shared with other plugins ([#1382](https://github.com/scm-manager/scm-manager/pull/1382)) + +### Changed +- Reduce logging of ApiTokenRealm ([#1385](https://github.com/scm-manager/scm-manager/pull/1385)) +- Centralise syntax highlighting ([#1382](https://github.com/scm-manager/scm-manager/pull/1382)) + +### Fixed +- Handling of snapshot plugin dependencies ([#1384](https://github.com/scm-manager/scm-manager/pull/1384)) +- SyntaxHighlighting for GoLang ([#1386](https://github.com/scm-manager/scm-manager/pull/1386)) +- Privilege escalation for api keys ([#1388](https://github.com/scm-manager/scm-manager/pull/1388)) + +## [2.6.3] - 2020-10-16 +### Fixed +- Missing default permission to manage public gpg keys ([#1377](https://github.com/scm-manager/scm-manager/pull/1377)) + +## [2.7.1] - 2020-10-14 +### Fixed +- Null Pointer Exception on anonymous migration with deleted repositories ([#1371](https://github.com/scm-manager/scm-manager/pull/1371)) +- Null Pointer Exception on parsing SVN properties ([#1373](https://github.com/scm-manager/scm-manager/pull/1373)) + +### Changed +- Reduced logging for invalid JWT or api keys ([#1374](https://github.com/scm-manager/scm-manager/pull/1374)) + +## [2.7.0] - 2020-10-12 +### Added +- Users can create API keys with limited permissions ([#1359](https://github.com/scm-manager/scm-manager/pull/1359)) + +## [2.6.2] - 2020-10-09 +### Added +- Introduce api for handling token validation failed exception ([#1362](https://github.com/scm-manager/scm-manager/pull/1362)) + +### Fixed +- Align actionbar item horizontal and enforce correct margin between them ([#1358](https://github.com/scm-manager/scm-manager/pull/1358)) +- Fix recursive browse command for git ([#1361](https://github.com/scm-manager/scm-manager/pull/1361)) +- SubRepository support ([#1357](https://github.com/scm-manager/scm-manager/pull/1357)) + +## [2.6.1] - 2020-09-30 +### Fixed +- Not found error when using browse command in empty hg repository ([#1355](https://github.com/scm-manager/scm-manager/pull/1355)) + +## [2.6.0] - 2020-09-25 +### Added +- Add support for pr merge with prior rebase ([#1332](https://github.com/scm-manager/scm-manager/pull/1332)) +- Tags overview for repository ([#1331](https://github.com/scm-manager/scm-manager/pull/1331)) +- Permissions can be specified for namespaces ([#1335](https://github.com/scm-manager/scm-manager/pull/1335)) +- Show update info on admin information page ([#1342](https://github.com/scm-manager/scm-manager/pull/1342)) + +### Changed +- Rework modal to use react portal ([#1349](https://github.com/scm-manager/scm-manager/pull/1349)) + +### Fixed +- Missing synchronization during repository creation ([#1328](https://github.com/scm-manager/scm-manager/pull/1328)) +- Missing BranchCreatedEvent for mercurial ([#1334](https://github.com/scm-manager/scm-manager/pull/1334)) +- Branch not found right after creation ([#1334](https://github.com/scm-manager/scm-manager/pull/1334)) +- Overflow for too long branch names ([#1339](https://github.com/scm-manager/scm-manager/pull/1339)) +- Set default branch in branch selector if nothing is selected ([#1338](https://github.com/scm-manager/scm-manager/pull/1338)) +- Handling of branch with slashes in source view ([#1340](https://github.com/scm-manager/scm-manager/pull/1340)) +- Detect not existing paths correctly in Mercurial ([#1343](https://github.com/scm-manager/scm-manager/pull/1343)) +- Return correct revisions for tags in hooks for git repositories ([#1344](https://github.com/scm-manager/scm-manager/pull/1344)) +- Add option for concrete commit message in merges without templating ([#1351](https://github.com/scm-manager/scm-manager/pull/1351)) + +## [2.5.0] - 2020-09-10 +### Added +- Tags now have date information attached ([#1305](https://github.com/scm-manager/scm-manager/pull/1305)) +- Add support for scroll anchors in url hash of diff page ([#1304](https://github.com/scm-manager/scm-manager/pull/1304)) +- Documentation regarding data and plugin migration from v1 to v2 ([#1321](https://github.com/scm-manager/scm-manager/pull/1321)) +- Add RepositoryCreationDto with creation context and extension-point for repository initialization ([#1324](https://github.com/scm-manager/scm-manager/pull/1324)) +- UI filter and rest endpoints for namespaces ([#1323](https://github.com/scm-manager/scm-manager/pull/1323)) + +### Fixed +- Redirection to requested page after login in anonymous mode +- Update filter state on property change ([#1327](https://github.com/scm-manager/scm-manager/pull/1327)) +- Diff view for svn now handles whitespaces in filenames properly ([1325](https://github.com/scm-manager/scm-manager/pull/1325)) +- Validate new namespace on repository rename ([#1322](https://github.com/scm-manager/scm-manager/pull/1322)) + +## [2.4.1] - 2020-09-01 +### Added +- Add "sonia.scm.restart-migration.wait" to set wait in milliseconds before restarting scm-server after migration ([#1308](https://github.com/scm-manager/scm-manager/pull/1308)) + +### Fixed +- Fix detection of markdown files for files having content does not start with '#' ([#1306](https://github.com/scm-manager/scm-manager/pull/1306)) +- Fix broken markdown rendering ([#1303](https://github.com/scm-manager/scm-manager/pull/1303)) +- JWT token timeout is now handled properly ([#1297](https://github.com/scm-manager/scm-manager/pull/1297)) +- Fix text-overflow in danger zone ([#1298](https://github.com/scm-manager/scm-manager/pull/1298)) +- Fix plugin installation error if previously a plugin was installed with the same dependency which is still pending. ([#1300](https://github.com/scm-manager/scm-manager/pull/1300)) +- Fix layout overflow on changesets with multiple tags ([#1314](https://github.com/scm-manager/scm-manager/pull/1314)) +- Make checkbox accessible from keyboard ([#1309](https://github.com/scm-manager/scm-manager/pull/1309)) +- Fix logging of large stacktrace for unknown language ([#1313](https://github.com/scm-manager/scm-manager/pull/1313)) +- Fix incorrect word breaking behaviour in markdown ([#1317](https://github.com/scm-manager/scm-manager/pull/1317)) +- Remove obsolete revision encoding on sources ([#1315](https://github.com/scm-manager/scm-manager/pull/1315)) +- Map generic JaxRS 'web application exceptions' to appropriate response instead of "internal server error" ([#1318](https://github.com/scm-manager/scm-manager/pull/1312)) + +## [2.4.0] - 2020-08-14 +### Added +- Introduced merge detection for receive hooks ([#1278](https://github.com/scm-manager/scm-manager/pull/1278)) +- Anonymous mode for the web ui ([#1284](https://github.com/scm-manager/scm-manager/pull/1284)) +- Add link to source file in diff sections ([#1267](https://github.com/scm-manager/scm-manager/pull/1267)) +- Check versions of plugin dependencies on plugin installation ([#1283](https://github.com/scm-manager/scm-manager/pull/1283)) +- Sign PR merges and commits performed through ui with generated private key ([#1285](https://github.com/scm-manager/scm-manager/pull/1285)) +- Add generic popover component to ui-components ([#1285](https://github.com/scm-manager/scm-manager/pull/1285)) +- Show changeset signatures in ui and add public keys ([#1273](https://github.com/scm-manager/scm-manager/pull/1273)) + +### Fixed +- Repository names may not end with ".git" ([#1277](https://github.com/scm-manager/scm-manager/pull/1277)) +- Add preselected value to options in dropdown component if missing ([#1287](https://github.com/scm-manager/scm-manager/pull/1287)) +- Show error message if plugin loading failed ([#1289](https://github.com/scm-manager/scm-manager/pull/1289)) +- Fix timing problem with anchor links for markdown view ([#1290](https://github.com/scm-manager/scm-manager/pull/1290)) + +## [2.3.1] - 2020-08-04 +### Added +- New api to resolve SCM-Manager root url ([#1276](https://github.com/scm-manager/scm-manager/pull/1276)) + +### Changed +- Help tooltips are now multiline by default ([#1271](https://github.com/scm-manager/scm-manager/pull/1271)) + +### Fixed +- Fixed unnecessary horizontal scrollbar in modal dialogs ([#1271](https://github.com/scm-manager/scm-manager/pull/1271)) +- Avoid stacktrace logging when protocol url is accessed outside of request scope ([#1276](https://github.com/scm-manager/scm-manager/pull/1276)) + +## [2.3.0] - 2020-07-23 +### Added +- Add branch link provider to access branch links in plugins ([#1243](https://github.com/scm-manager/scm-manager/pull/1243)) +- Add key value input field component ([#1246](https://github.com/scm-manager/scm-manager/pull/1246)) +- Update installed optional plugin dependencies upon plugin upgrade ([#1260](https://github.com/scm-manager/scm-manager/pull/1260)) + +### Changed +- Adding start delay to liveness and readiness probes in helm chart template +- Init svn repositories with trunk folder ([#1259](https://github.com/scm-manager/scm-manager/pull/1259)) +- Show line numbers in source code view by default ([#1265](https://github.com/scm-manager/scm-manager/pull/1265)) + +### Fixed +- Fixed file extension detection with new spotter version +- Fixed wrong cache directory location ([#1236](https://github.com/scm-manager/scm-manager/issues/1236) and [#1242](https://github.com/scm-manager/scm-manager/issues/1242)) +- Fixed error in update step ([#1237](https://github.com/scm-manager/scm-manager/issues/1237) and [#1244](https://github.com/scm-manager/scm-manager/issues/1244)) +- Fix incorrect trimming of whitespaces in helm chart templates +- Fixed error on empty diff expand response ([#1247](https://github.com/scm-manager/scm-manager/pull/1247)) +- Ignore ports on proxy exclusions ([#1256](https://github.com/scm-manager/scm-manager/pull/1256)) +- Invalidate branches cache synchronously on create new branch ([#1261](https://github.com/scm-manager/scm-manager/pull/1261)) + +## [2.2.0] - 2020-07-03 +### Added +- Rename repository name (and namespace if permitted) ([#1218](https://github.com/scm-manager/scm-manager/pull/1218)) +- Enrich commit mentions in markdown viewer by internal links ([#1210](https://github.com/scm-manager/scm-manager/pull/1210)) +- New extension point \`changeset.description.tokens\` to "enrich" commit messages ([#1231](https://github.com/scm-manager/scm-manager/pull/1231)) +- Restart service after rpm or deb package upgrade + +### Changed +- Checkboxes can now be 'indeterminate' ([#1215](https://github.com/scm-manager/scm-manager/pull/1215)) +- The old frontend extension point \`changeset.description\` is deprecated and should be replaced with \`changeset.description.tokens\` ([#1231](https://github.com/scm-manager/scm-manager/pull/1231)) +- Required plugins will be updated, too, when a plugin is updated ([#1233](https://github.com/scm-manager/scm-manager/pull/1233)) + +### Fixed +- Fixed installation of debian packages on distros without preinstalled \`at\` ([#1216](https://github.com/scm-manager/scm-manager/issues/1216) and [#1217](https://github.com/scm-manager/scm-manager/pull/1217)) +- Fixed restart with deb or rpm installation ([#1222](https://github.com/scm-manager/scm-manager/issues/1222) and [#1227](https://github.com/scm-manager/scm-manager/pull/1227)) +- Fixed broken migration with empty security.xml ([#1219](https://github.com/scm-manager/scm-manager/issues/1219) and [#1221](https://github.com/scm-manager/scm-manager/pull/1221)) +- Added missing architecture to debian installation documentation ([#1230](https://github.com/scm-manager/scm-manager/pull/1230)) +- Mercurial on Python 3 ([#1232](https://github.com/scm-manager/scm-manager/pull/1232)) +- Fixed wrong package information for deb and rpm packages ([#1229](https://github.com/scm-manager/scm-manager/pull/1229)) +- Fixed missing content type on migration wizard ([#1234](https://github.com/scm-manager/scm-manager/pull/1234)) + +## [2.1.1] - 2020-06-23 +### Fixed +- Wait until recommended java installation is available for deb packages ([#1209](https://github.com/scm-manager/scm-manager/pull/1209)) +- Do not force java home of recommended java dependency for rpm and deb packages ([#1195](https://github.com/scm-manager/scm-manager/issues/1195) and [#1208](https://github.com/scm-manager/scm-manager/pull/1208)) +- Migration of non-bare repositories ([#1213](https://github.com/scm-manager/scm-manager/pull/1213)) + +## [2.1.0] - 2020-06-18 +### Added +- Option to configure jvm parameter of docker container with env JAVA_OPTS or with arguments ([#1175](https://github.com/scm-manager/scm-manager/pull/1175)) +- Added links in diff views to expand the gaps between "hunks" ([#1178](https://github.com/scm-manager/scm-manager/pull/1178)) +- Show commit contributors in table on changeset details view ([#1169](https://github.com/scm-manager/scm-manager/pull/1169)) +- Show changeset parents on changeset details view ([#1189](https://github.com/scm-manager/scm-manager/pull/1189)) +- Annotate view to display commit metadata for each line of a file ([#1196](https://github.com/scm-manager/scm-manager/pull/1196)) + +### Fixed +- Avoid caching of detected browser language ([#1176](https://github.com/scm-manager/scm-manager/pull/1176)) +- Fixes configuration of jetty listener address with system property \`jetty.host\` ([#1173](https://github.com/scm-manager/scm-manager/pull/1173), [#1174](https://github.com/scm-manager/scm-manager/pull/1174)) +- Fixes loading plugin bundles with context path \`/\` ([#1182](https://github.com/scm-manager/scm-manager/pull/1182/files), [#1181](https://github.com/scm-manager/scm-manager/issues/1181)) +- Sets the new plugin center URL once ([#1184](https://github.com/scm-manager/scm-manager/pull/1184)) +- Diffs with CR characters are parsed correctly ([#1185](https://github.com/scm-manager/scm-manager/pull/1185)) +- Close file lists in migration ([#1191](https://github.com/scm-manager/scm-manager/pull/1191)) +- Use command in javahg.py from registrar (Upgrade to newer javahg version) ([#1192](https://github.com/scm-manager/scm-manager/pull/1192)) +- Fixed wrong e-tag format ([sdorra/web-resource #1](https://github.com/sdorra/web-resources/pull/1)) +- Fixed refetching loop for non existing changesets ([#1203](https://github.com/scm-manager/scm-manager/pull/1203)) +- Fixed active state of sub navigation items, which are using activeWhenMatch ([#1199](https://github.com/scm-manager/scm-manager/pull/1199)) +- Handles repositories in custom directories correctly in migration from 1.x ([#1201](https://github.com/scm-manager/scm-manager/pull/1201)) +- Usage of short git commit ids in changeset urls ([#1200](https://github.com/scm-manager/scm-manager/pull/1200)) +- Fixes linebreaks in multiline tooltip ([#1207](https://github.com/scm-manager/scm-manager/pull/1207)) + +## [2.0.0] - 2020-06-04 +### Added +- Detect renamed files in git and hg diffs ([#1157](https://github.com/scm-manager/scm-manager/pull/1157)) +- ClassLoader and Adapter parameters to typed store apis ([#1111](https://github.com/scm-manager/scm-manager/pull/1111)) +- Native packaging for Debian, Red Hat, Windows, Unix, Docker and Kubernetes ([#1165](https://github.com/scm-manager/scm-manager/pull/1165)) +- Cache for working directories ([#1166](https://github.com/scm-manager/scm-manager/pull/1166)) + +### Fixed +- Correctly resolve Links in markdown files ([#1152](https://github.com/scm-manager/scm-manager/pull/1152)) +- Missing copy on write in the data store ([#1155](https://github.com/scm-manager/scm-manager/pull/1155)) +- Resolved conflicting dependencies for scm-webapp ([#1159](https://github.com/scm-manager/scm-manager/pull/1159)) + +## [2.0.0-rc8] - 2020-05-08 +### Added +- Add iconStyle + onClick option and story shot for icon component ([#1100](https://github.com/scm-manager/scm-manager/pull/1100)) +- Making WebElements (Servlet or Filter) optional by using the \`@Requires\` annotation ([#1101](https://github.com/scm-manager/scm-manager/pull/1101)) +- Add class to manually validate rest data transfer objects with javax validation annotations ([#1114](https://github.com/scm-manager/scm-manager/pull/1114)) +- Missing stories for ui-components ([#1140](https://github.com/scm-manager/scm-manager/pull/1140)) + +### Changed +- Removed the \`requires\` attribute on the \`@Extension\` annotation and instead create a new \`@Requires\` annotation ([#1097](https://github.com/scm-manager/scm-manager/pull/1097)) +- Update guide to prevent common pitfalls in ui development ([#1107](https://github.com/scm-manager/scm-manager/pull/1107)) +- Use os specific locations for scm home directory ([#1109](https://github.com/scm-manager/scm-manager/pull/1109)) +- Use Library/Logs/SCM-Manager on OSX for logging ([#1109](https://github.com/scm-manager/scm-manager/pull/1109)) +- Cleanup outdated jaxb annotation in scm-core ([#1136](https://github.com/scm-manager/scm-manager/pull/1136)) + +### Fixed +- Protocol URI for git commands under windows ([#1108](https://github.com/scm-manager/scm-manager/pull/1108)) +- Fix usage of invalid cipher algorithm on newer java versions ([#1110](https://github.com/scm-manager/scm-manager/issues/1110),[#1112](https://github.com/scm-manager/scm-manager/pull/1112)) +- Handle obscure line breaks in diff viewer ([#1129](https://github.com/scm-manager/scm-manager/pull/1129)) +- Validate subversion client checksum ([#1113](https://github.com/scm-manager/scm-manager/issues/1113)) +- Fix plugin manage permission ([#1135](https://github.com/scm-manager/scm-manager/pull/1135)) + +## [2.0.0-rc7] - 2020-04-09 +### Added +- Fire various plugin events ([#1088](https://github.com/scm-manager/scm-manager/pull/1088)) +- Display version for plugins ([#1089](https://github.com/scm-manager/scm-manager/pull/1089)) + +### Changed +- Simplified collapse state management of the secondary navigation ([#1086](https://github.com/scm-manager/scm-manager/pull/1086)) +- Ensure same monospace font-family throughout whole SCM-Manager ([#1091](https://github.com/scm-manager/scm-manager/pull/1091)) + +### Fixed +- Authentication for write requests for repositories with anonymous read access ([#108](https://github.com/scm-manager/scm-manager/pull/1081)) +- Submodules in git do no longer lead to a server error in the browser command ([#1093](https://github.com/scm-manager/scm-manager/pull/1093)) + +## [2.0.0-rc6] - 2020-03-26 +### Added +- Extension point to add links to the repository cards from plug ins ([#1041](https://github.com/scm-manager/scm-manager/pull/1041)) +- Libc based restart strategy for posix operating systems ([#1079](https://github.com/scm-manager/scm-manager/pull/1079)) +- Simple restart strategy with System.exit ([#1079](https://github.com/scm-manager/scm-manager/pull/1079)) +- Notification if restart is not supported on the underlying platform ([#1079](https://github.com/scm-manager/scm-manager/pull/1079)) +- Extension point before title in repository cards ([#1080](https://github.com/scm-manager/scm-manager/pull/1080)) +- Extension point after title on repository detail page ([#1080](https://github.com/scm-manager/scm-manager/pull/1080)) + +### Changed +- Update resteasy to version 4.5.2.Final +- Update shiro to version 1.5.2 +- Use browser built-in EventSource for apiClient subscriptions +- Changeover to MIT license ([#1066](https://github.com/scm-manager/scm-manager/pull/1066)) + +### Removed +- EventSource Polyfill +- ClassLoader based restart logic ([#1079](https://github.com/scm-manager/scm-manager/pull/1079)) + +### Fixed +- Build on windows ([#1048](https://github.com/scm-manager/scm-manager/issues/1048), [#1049](https://github.com/scm-manager/scm-manager/issues/1049), [#1056](https://github.com/scm-manager/scm-manager/pull/1056)) +- Show specific notification for plugin actions on plugin administration ([#1057](https://github.com/scm-manager/scm-manager/pull/1057)) +- Invalid markdown could make parts of the page inaccessible ([#1077](https://github.com/scm-manager/scm-manager/pull/1077)) + +## [2.0.0-rc5] - 2020-03-12 +### Added +- Added footer extension points for links and avatar +- Create OpenAPI specification during build +- Extension point entries with supplied extensionName are sorted ascending +- Possibility to configure git core config entries for jgit like core.trustfolderstat and core.supportsatomicfilecreation +- Babel-plugin-styled-components for persistent generated classnames +- By default, only 100 files will be listed in source view in one request + +### Changed +- New footer design +- Update jgit to version 5.6.1.202002131546-r-scm1 +- Update svnkit to version 1.10.1-scm1 +- Secondary navigation collapsable + +### Fixed +- Modification for mercurial repositories with enabled XSRF protection +- Does not throw NullPointerException when merge fails without normal merge conflicts +- Keep file attributes on modification +- Drop Down Component works again with translations + +### Removed +- Enunciate rest documentation +- Obsolete fields in data transfer objects + +## [2.0.0-rc4] - 2020-02-14 +### Added +- Support for Java versions > 8 +- Simple ClassLoaderLifeCycle to fix integration tests on Java > 8 +- Option to use a function for default collapse state in diffs + +### Changed +- Use icon only buttons for diff file controls +- Upgrade [Legman](https://github.com/sdorra/legman) to v1.6.2 in order to fix execution on Java versions > 8 +- Upgrade [Lombok](https://projectlombok.org/) to version 1.18.10 in order to fix build on Java versions > 8 +- Upgrade [Mockito](https://site.mockito.org/) to version 2.28.2 in order to fix tests on Java versions > 8 +- Upgrade smp-maven-plugin to version 1.0.0-rc3 + +### Fixed +- Committer of new Git commits set to "SCM-Manager " + +## [2.0.0-rc3] - 2020-01-31 +### Fixed +- Broken plugin order fixed +- MarkdownViewer in code section renders markdown properly + +## [2.0.0-rc2] - 2020-01-29 +### Added +- Set individual page title +- Copy on write +- A new repository can be initialized with a branch (for git and mercurial) and custom files (README.md on default) +- Plugins are validated directly after download +- Code highlighting in diffs +- Switch between rendered version and source view for Markdown files + +### Changed +- Stop fetching commits when it takes too long +- Unification of source and commits become "code" + +### Fixed +- Classloader leak which caused problems when restarting +- Failing git push does not lead to an GitAPIException +- Subversion revision 0 leads to error +- Create mock subject to satisfy legman +- Multiple versions of hibernate-validator caused problems when starting from plugins +- Page title is now set correctly +- Restart after migration + +## [2.0.0-rc1] - 2019-12-02 +### Added +- Namespace concept and endpoints +- File history +- Global permission concept +- Completely translated into German with all the text and controls of the UI +- Frontend provides further details on corresponding errors +- Repository branch overview, detailed view and create branch functionality +- Search and filter for repos, users and groups +- Repository Permissions roles +- Migration step framework and wizard +- Plugin center integration +- Plugins can be installed (even without restart), updated and uninstalled using the new plugins overview +- Git-LFS support (with SSH authentication) +- Anonymous access via git-clone and API access with anonymous user +- Cache and x-requested-with header to bundle requests +- remove public flag from repository and migrate permissions to anonymous user + +[2.0.0-rc1]: https://www.scm-manager.org/download/2.0.0-rc1 +[2.0.0-rc2]: https://www.scm-manager.org/download/2.0.0-rc2 +[2.0.0-rc3]: https://www.scm-manager.org/download/2.0.0-rc3 +[2.0.0-rc4]: https://www.scm-manager.org/download/2.0.0-rc4 +[2.0.0-rc5]: https://www.scm-manager.org/download/2.0.0-rc5 +[2.0.0-rc6]: https://www.scm-manager.org/download/2.0.0-rc6 +[2.0.0-rc7]: https://www.scm-manager.org/download/2.0.0-rc7 +[2.0.0-rc8]: https://www.scm-manager.org/download/2.0.0-rc8 +[2.0.0]: https://www.scm-manager.org/download/2.0.0 +[2.1.0]: https://www.scm-manager.org/download/2.1.0 +[2.1.1]: https://www.scm-manager.org/download/2.1.1 +[2.2.0]: https://www.scm-manager.org/download/2.2.0 +[2.3.0]: https://www.scm-manager.org/download/2.3.0 +[2.3.1]: https://www.scm-manager.org/download/2.3.1 +[2.4.0]: https://www.scm-manager.org/download/2.4.0 +[2.4.1]: https://www.scm-manager.org/download/2.4.1 +[2.5.0]: https://www.scm-manager.org/download/2.5.0 +[2.6.0]: https://www.scm-manager.org/download/2.6.0 +[2.6.1]: https://www.scm-manager.org/download/2.6.1 +[2.6.2]: https://www.scm-manager.org/download/2.6.2 +[2.6.3]: https://www.scm-manager.org/download/2.6.3 +[2.7.0]: https://www.scm-manager.org/download/2.7.0 +[2.7.1]: https://www.scm-manager.org/download/2.7.1 +[2.8.0]: https://www.scm-manager.org/download/2.8.0 +[2.9.0]: https://www.scm-manager.org/download/2.9.0 +[2.9.1]: https://www.scm-manager.org/download/2.9.1 +[2.10.0]: https://www.scm-manager.org/download/2.10.0 +[2.10.1]: https://www.scm-manager.org/download/2.10.1 +[2.11.0]: https://www.scm-manager.org/download/2.11.0 +[2.11.1]: https://www.scm-manager.org/download/2.11.1 +[2.12.0]: https://www.scm-manager.org/download/2.12.0 +[2.13.0]: https://www.scm-manager.org/download/2.13.0 +[2.14.0]: https://www.scm-manager.org/download/2.14.0 +[2.14.1]: https://www.scm-manager.org/download/2.14.1 +[2.15.0]: https://www.scm-manager.org/download/2.15.0 +[2.15.1]: https://www.scm-manager.org/download/2.15.1 +[2.16.0]: https://www.scm-manager.org/download/2.16.0 +`; diff --git a/scm-ui/ui-components/src/__resources__/markdown-xss.md.ts b/scm-ui/ui-components/src/__resources__/markdown-xss.md.ts index d4eee90ac0..6e3c1be020 100644 --- a/scm-ui/ui-components/src/__resources__/markdown-xss.md.ts +++ b/scm-ui/ui-components/src/__resources__/markdown-xss.md.ts @@ -33,4 +33,10 @@ You should not see an alert onload. If you hover over me nothing should happen. Not every html html should be removed. + + + + + + `; diff --git a/scm-ui/ui-components/src/__resources__/test-page.md.ts b/scm-ui/ui-components/src/__resources__/test-page.md.ts index d5e594e9aa..7c110b68c6 100644 --- a/scm-ui/ui-components/src/__resources__/test-page.md.ts +++ b/scm-ui/ui-components/src/__resources__/test-page.md.ts @@ -22,7 +22,7 @@ * SOFTWARE. */ -export default `# Markdown Test Page +export default `# Markdown Test Page * [Headings](#Headings) * [Paragraphs](#Paragraphs) @@ -35,7 +35,7 @@ export default `# Markdown Test Page *** -# Headings +# Headings # Heading one @@ -64,7 +64,7 @@ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor [[Top]](#top) -# Paragraphs +# Paragraphs Incididunt ex adipisicing ea ullamco consectetur in voluptate proident fugiat tempor deserunt reprehenderit ullamco id dolore laborum. Do laboris laboris minim incididunt qui consectetur exercitation adipisicing dolore et magna consequat magna anim sunt. Officia fugiat Lorem sunt pariatur incididunt Lorem reprehenderit proident irure. Dolore ipsum aliqua mollit ad officia fugiat sit eu aliquip cupidatat ipsum duis laborum laborum fugiat esse. Voluptate anim ex dolore deserunt ea ex eiusmod irure. Occaecat excepteur aliqua exercitation aliquip dolor esse eu eu. @@ -74,7 +74,7 @@ Officia irure in non voluptate adipisicing sit amet tempor duis dolore deserunt [[Top]](#top) -# Blockquotes +# Blockquotes Ad nisi laborum aute cupidatat magna deserunt eu id laboris id. Aliquip nulla cupidatat sint ex Lorem mollit laborum dolor amet est ut esse aute. Nostrud ex consequat id incididunt proident ipsum minim duis aliqua ut ex et ad quis. Laborum sint esse cillum anim nulla cillum consectetur aliqua sit. Nisi excepteur cillum labore amet excepteur commodo enim occaecat consequat ipsum proident exercitation duis id in. @@ -92,7 +92,7 @@ Adipisicing voluptate ipsum culpa voluptate id aute laboris labore esse fugiat v [[Top]](#top) -# Lists +# Lists ### Ordered List @@ -120,7 +120,7 @@ Adipisicing voluptate ipsum culpa voluptate id aute laboris labore esse fugiat v [[Top]](#top) -# Horizontal rule +# Horizontal rule In dolore velit aliquip labore mollit minim tempor veniam eu veniam ad in sint aliquip mollit mollit. Ex occaecat non deserunt elit laborum sunt tempor sint consequat culpa culpa qui sit. Irure ad commodo eu voluptate mollit cillum cupidatat veniam proident amet minim reprehenderit. @@ -130,7 +130,7 @@ In laboris eiusmod reprehenderit aliquip sit proident occaecat. Non sit labore a [[Top]](#top) -# Table +# Table Duis sunt ut pariatur reprehenderit mollit mollit magna dolore in pariatur nulla commodo sit dolor ad fugiat. Laboris amet ea occaecat duis eu enim exercitation deserunt ea laborum occaecat reprehenderit. Et incididunt dolor commodo consequat mollit nisi proident non pariatur in et incididunt id. Eu ut et Lorem ea ex magna minim ipsum ipsum do. @@ -146,7 +146,7 @@ Minim id consequat adipisicing cupidatat laborum culpa veniam non consectetur et [[Top]](#top) -# Code +# Code ## Inline code @@ -178,7 +178,7 @@ Ex amet id ex aliquip id do laborum excepteur exercitation elit sint commodo occ [[Top]](#top) -# Inline elements +# Inline elements Sint ea anim ipsum ad commodo cupidatat do **exercitation** incididunt et minim ad labore sunt. Minim deserunt labore laboris velit nulla incididunt ipsum nulla. Ullamco ad laborum ea qui et anim in laboris exercitation tempor sit officia laborum reprehenderit culpa velit quis. **Consequat commodo** reprehenderit duis [irure](#!) esse esse exercitation minim enim Lorem dolore duis irure. Nisi Lorem reprehenderit ea amet excepteur dolor excepteur magna labore proident voluptate ipsum. Reprehenderit ex esse deserunt aliqua ea officia mollit Lorem nulla magna enim. Et ad ipsum labore enim ipsum **cupidatat consequat**. Commodo non ea cupidatat magna deserunt dolore ipsum velit nulla elit veniam nulla eiusmod proident officia. diff --git a/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap b/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap index 2067368c3a..2677684ab2 100644 --- a/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap +++ b/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap @@ -47789,56 +47789,35 @@ exports[`Storyshots MarkdownView Code without Lang 1`] = `
-
-
+
+

Here is markdown with code, but without Language.

-
-
-          
+        
+
-            
- - - - - 1 - - + + + 1 - Code without Language! + + Code without Language! + + - -
-
-
-
+
+
+ + + + + 2 + + + + + +
+ + +
+
@@ -47904,13 +47920,18 @@ exports[`Storyshots MarkdownView Commit Links 1`] = `
-
- @@ -47985,26 +48029,31 @@ exports[`Storyshots MarkdownView Custom code renderer 1`] = `
-
-
-

+
+
+

Uml Code Block in Markdown

-
-

+
+

- To render plantuml as images within markdown, please install the scm-markdown-plantuml-plguin -

-
-          actor Foo1
+          >
+            To render plantuml as images within markdown, please install the scm-markdown-plantuml-plguin
+          

+
+            actor Foo1
 boundary Foo2
 control Foo3
 entity Foo4
@@ -48015,8 +48064,10 @@ Foo1 -> Foo3 : To control
 Foo1 -> Foo4 : To entity
 Foo1 -> Foo5 : To database
 Foo1 -> Foo6 : To collections
-        
-
+ + +
+

@@ -48026,17 +48077,24 @@ exports[`Storyshots MarkdownView Default 1`] = `
-
-
-

+
+
+

- Markdown Test Page + > + Markdown Test Page +

+ + + +
-

+ + +

- Headings + > + Headings +

-

+ + +

Heading one

+ +

Sint sit cillum pariatur eiusmod nulla pariatur ipsum. Sit laborum anim qui mollit tempor pariatur nisi minim dolor. Aliquip et adipisicing sit sit fugiat commodo id sunt. Nostrud enim ad commodo incididunt cupidatat in ullamco ullamco Lorem cupidatat velit enim et Lorem. Ut laborum cillum laboris fugiat culpa sint irure do reprehenderit culpa occaecat. Exercitation esse mollit tempor magna aliqua in occaecat aliquip veniam reprehenderit nisi dolor in laboris dolore velit.

-

+ + +

Heading two

+ +

Aute officia nulla deserunt do deserunt cillum velit magna. Officia veniam culpa anim minim dolore labore pariatur voluptate id ad est duis quis velit dolor pariatur enim. Incididunt enim excepteur do veniam consequat culpa do voluptate dolor fugiat ad adipisicing sit. Labore officia est adipisicing dolore proident eiusmod exercitation deserunt ullamco anim do occaecat velit. Elit dolor consectetur proident sunt aliquip est do tempor quis aliqua culpa aute. Duis in tempor exercitation pariatur et adipisicing mollit irure tempor ut enim esse commodo laboris proident. Do excepteur laborum anim esse aliquip eu sit id Lorem incididunt elit irure ea nulla dolor et. Nulla amet fugiat qui minim deserunt enim eu cupidatat aute officia do velit ea reprehenderit.

-

+ + +

Heading three

+ +

Voluptate cupidatat cillum elit quis ipsum eu voluptate fugiat consectetur enim. Quis ut voluptate culpa ex anim aute consectetur dolore proident voluptate exercitation eiusmod. Esse in do anim magna minim culpa sint. Adipisicing ipsum consectetur proident ullamco magna sit amet aliqua aute fugiat laborum exercitation duis et.

-

+ + +

Heading four

+ +

Commodo fugiat aliqua minim quis pariatur mollit id tempor. Non occaecat minim esse enim aliqua adipisicing nostrud duis consequat eu adipisicing qui. Minim aliquip sit excepteur ipsum consequat laborum pariatur excepteur. Veniam fugiat et amet ad elit anim laborum duis mollit occaecat et et ipsum et reprehenderit. Occaecat aliquip dolore adipisicing sint labore occaecat officia fugiat. Quis adipisicing exercitation exercitation eu amet est laboris sunt nostrud ipsum reprehenderit ullamco. Enim sint ut consectetur id anim aute voluptate exercitation mollit dolore magna magna est Lorem. Ut adipisicing adipisicing aliqua ullamco voluptate labore nisi tempor esse magna incididunt.

-
+ + +
Heading five
+ +

Veniam enim esse amet veniam deserunt laboris amet enim consequat. Minim nostrud deserunt cillum consectetur commodo eu enim nostrud ullamco occaecat excepteur. Aliquip et ut est commodo enim dolor amet sint excepteur. Amet ad laboris laborum deserunt sint sunt aliqua commodo ex duis deserunt enim est ex labore ut. Duis incididunt velit adipisicing non incididunt adipisicing adipisicing. Ad irure duis nisi tempor eu dolor fugiat magna et consequat tempor eu ex dolore. Mollit esse nisi qui culpa ut nisi ex proident culpa cupidatat cillum culpa occaecat anim. Ut officia sit ea nisi ea excepteur nostrud ipsum et nulla.

-
+ + +
Heading six
+ +

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+ +

-

+ + +

- Paragraphs + > + Paragraphs +

+ +

Incididunt ex adipisicing ea ullamco consectetur in voluptate proident fugiat tempor deserunt reprehenderit ullamco id dolore laborum. Do laboris laboris minim incididunt qui consectetur exercitation adipisicing dolore et magna consequat magna anim sunt. Officia fugiat Lorem sunt pariatur incididunt Lorem reprehenderit proident irure. Dolore ipsum aliqua mollit ad officia fugiat sit eu aliquip cupidatat ipsum duis laborum laborum fugiat esse. Voluptate anim ex dolore deserunt ea ex eiusmod irure. Occaecat excepteur aliqua exercitation aliquip dolor esse eu eu.

+ +

Officia dolore laborum aute incididunt commodo nisi velit est est elit et dolore elit exercitation. Enim aliquip magna id ipsum aliquip consectetur ad nulla quis. Incididunt pariatur dolor consectetur cillum enim velit cupidatat laborum quis ex.

+ +

Officia irure in non voluptate adipisicing sit amet tempor duis dolore deserunt enim ut. Reprehenderit incididunt in ad anim et deserunt deserunt Lorem laborum quis. Enim aute anim labore proident laboris voluptate elit excepteur in. Ex labore nulla velit officia ullamco Lorem Lorem id do. Dolore ullamco ipsum magna dolor pariatur voluptate ipsum id occaecat ipsum. Dolore tempor quis duis commodo quis quis enim.

+ +

-

+ + +

- Blockquotes + > + Blockquotes +

+ +

Ad nisi laborum aute cupidatat magna deserunt eu id laboris id. Aliquip nulla cupidatat sint ex Lorem mollit laborum dolor amet est ut esse aute. Nostrud ex consequat id incididunt proident ipsum minim duis aliqua ut ex et ad quis. Laborum sint esse cillum anim nulla cillum consectetur aliqua sit. Nisi excepteur cillum labore amet excepteur commodo enim occaecat consequat ipsum proident exercitation duis id in.

+ +
+ +

Ipsum et cupidatat mollit exercitation enim duis sunt irure aliqua reprehenderit mollit. Pariatur Lorem pariatur laboris do culpa do elit irure. Eiusmod amet nulla voluptate velit culpa et aliqua ad reprehenderit sit ut.

+ +
+ +

Labore ea magna Lorem consequat aliquip consectetur cillum duis dolore. Et veniam dolor qui incididunt minim amet laboris sit. Dolore ad esse commodo et dolore amet est velit ut nisi ea. Excepteur ea nulla commodo dolore anim dolore adipisicing eiusmod labore id enim esse quis mollit deserunt est. Minim ea culpa voluptate nostrud commodo proident in duis aliquip minim.

+ +
+ +

Qui est sit et reprehenderit aute est esse enim aliqua id aliquip ea anim. Pariatur sint reprehenderit mollit velit voluptate enim consectetur sint enim. Quis exercitation proident elit non id qui culpa dolore esse aliquip consequat.

+ +
+ +

Ipsum excepteur cupidatat sunt minim ad eiusmod tempor sit.

+ +
+ +

Deserunt excepteur adipisicing culpa pariatur cillum laboris ullamco nisi fugiat cillum officia. In cupidatat nulla aliquip tempor ad Lorem Lorem quis voluptate officia consectetur pariatur ex in est duis. Mollit id esse est elit exercitation voluptate nostrud nisi laborum magna dolore dolore tempor in est consectetur.

+ +
+ +

Adipisicing voluptate ipsum culpa voluptate id aute laboris labore esse fugiat veniam ullamco occaecat do ut. Tempor et esse reprehenderit veniam proident ipsum irure sit ullamco et labore ea excepteur nulla labore ut. Ex aute minim quis tempor in eu id id irure ea nostrud dolor esse.

+ +

-

+ + +

- Lists + > + Lists +

-

+ + +

Ordered List

+ +
    + +
  1. Longan
  2. + +
  3. Lychee
  4. + +
  5. Excepteur ad cupidatat do elit laborum amet cillum reprehenderit consequat quis. Deserunt officia esse aliquip consectetur duis ut labore laborum commodo aliquip aliquip velit pariatur dolore.
  6. + +
  7. Marionberry
  8. + +
  9. Melon +
      + +
    • Cantaloupe
    • + +
    • Honeydew
    • + +
    • Watermelon
    • + +
    + +
  10. + +
  11. Miracle fruit
  12. + +
  13. Mulberry
  14. + +
-

+ + +

Unordered List

+ +
    + +
  • Olive
  • + +
  • Orange +
      + +
    • Blood orange
    • + +
    • Clementine
    • + +
    + +
  • + +
  • Papaya
  • + +
  • Ut aute ipsum occaecat nisi culpa Lorem id occaecat cupidatat id id magna laboris ad duis. Fugiat cillum dolore veniam nostrud proident sint consectetur eiusmod irure adipisicing.
  • + +
  • Passionfruit
  • + +
+ +

-

+ + +

- Horizontal rule + > + Horizontal rule +

+ +

In dolore velit aliquip labore mollit minim tempor veniam eu veniam ad in sint aliquip mollit mollit. Ex occaecat non deserunt elit laborum sunt tempor sint consequat culpa culpa qui sit. Irure ad commodo eu voluptate mollit cillum cupidatat veniam proident amet minim reprehenderit.

+ +
+ +

In laboris eiusmod reprehenderit aliquip sit proident occaecat. Non sit labore anim elit veniam Lorem minim commodo eiusmod irure do minim nisi. Dolor amet cillum excepteur consequat sint non sint.

+ +

-

+ + +

- Table + > + Table +

+ +

Duis sunt ut pariatur reprehenderit mollit mollit magna dolore in pariatur nulla commodo sit dolor ad fugiat. Laboris amet ea occaecat duis eu enim exercitation deserunt ea laborum occaecat reprehenderit. Et incididunt dolor commodo consequat mollit nisi proident non pariatur in et incididunt id. Eu ut et Lorem ea ex magna minim ipsum ipsum do.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -48602,9 +48903,13 @@ Deserunt officia esse aliquip consectetur duis ut labore laborum commodo aliquip
+ +

Minim id consequat adipisicing cupidatat laborum culpa veniam non consectetur et duis pariatur reprehenderit eu ex consectetur. Sunt nisi qui eiusmod ut cillum laborum Lorem officia aliquip laboris ullamco nostrud laboris non irure laboris. Cillum dolore labore Lorem deserunt mollit voluptate esse incididunt ex dolor.

+ +

-

+ + +

- Code + > + Code +

-

+ + +

Inline code

+ +

Ad amet irure est magna id mollit Lorem in do duis enim. Excepteur velit nisi magna ea pariatur pariatur ullamco fugiat deserunt sint non sint. Duis duis est - - code in text - - velit velit aute culpa ex quis pariatur pariatur laborum aute pariatur duis tempor sunt ad. Irure magna voluptate dolore consectetur consectetur irure esse. Anim magna - - <strong>in culpa qui officia</strong> - - dolor eiusmod esse amet aute cupidatat aliqua do id voluptate cupidatat reprehenderit amet labore deserunt. -

-

- Highlighted -

-

- Et fugiat ad nisi amet magna labore do cillum fugiat occaecat cillum Lorem proident. In sint dolor ullamco ad do adipisicing amet id excepteur Lorem aliquip sit irure veniam laborum duis cillum. Aliqua occaecat minim cillum deserunt magna sunt laboris do do irure ea nostrud consequat ut voluptate ex. -

-
-
-          
+          
-            
- - + + + - - - 1 - - - - package - - - main - - - -
-
- - - - - 2 - - - - - -
-
- - - - - 3 - - - - - - - import - - - - - - ( - - - - - - -
-
- - - - - 4 - - - - - - - "fmt" - - - - - - -
-
- - - - - 5 - - - - - - - "net/http" - - - - - - -
-
- - - - - 6 - - - - - - - ) - - - - - - -
-
- - - - - 7 - - - - - -
-
- - - - - 8 - - - - - - - func - - - - - - handler - - - ( - - - w http - - - . - - - ResponseWriter - - - , - - - r - - - * - - - http - - - . - - - Request - - - ) - - - - - - { - - - - - - -
-
- - - - - 9 - - - - fmt - - - . - - - Fprintf - - - ( - - - w - - - , - - - - - - "Hi there, I love %s!" - - - , - - - r - - - . - - - URL - - - . - - - Path - - - [ - - 1 - - : - - - ] - - - ) - - - + + 1 + + + code in text + - -
-
+ +
+
+ velit velit aute culpa ex quis pariatur pariatur laborum aute pariatur duis tempor sunt ad. Irure magna voluptate dolore consectetur consectetur irure esse. Anim magna +
+
+            
-              
-                
-              
-              
-                10
-              
-              
                 
-                  
+                  
                 
-                
-                  }
-                
-                
-                  
-
-                
-              
-            
-
- - - - - 11 - - - - - -
-
- - - - - 12 - - - - - - - func - - - - - - main - - - ( - - - ) - - - - - - { - - - - - - -
-
- - - - - 13 - - - - http - - - . - - - HandleFunc - - - ( - - - "/" - - - , - - - handler - - - ) - - - - - - -
-
- - - - - 14 - - - - http - - - . - - - ListenAndServe - - - ( - - - ":8080" - - - , - - - - - - nil - - - ) - - - - - - -
-
- - - - - 15 - - + 1 + + + + 1 + + + <strong>in culpa qui officia</strong> + + +
+
+ +
+ dolor eiusmod esse amet aute cupidatat aliqua do id voluptate cupidatat reprehenderit amet labore deserunt. +

+ + +

+ Highlighted +

+ + +

+ Et fugiat ad nisi amet magna labore do cillum fugiat occaecat cillum Lorem proident. In sint dolor ullamco ad do adipisicing amet id excepteur Lorem aliquip sit irure veniam laborum duis cillum. Aliqua occaecat minim cillum deserunt magna sunt laboris do do irure ea nostrud consequat ut voluptate ex. +

+ + +
+        
+
+            
+              
+ + + + + 1 + + + + package + + + main + + + +
+
+ + + + + 2 + + + + + +
+
+ + + + + 3 + + + + + + + import + + + + + + ( + + + + + + +
+
+ + + + + 4 + + + + + + + "fmt" + + + + + + +
+
+ + + + + 5 + + + + + + + "net/http" + + + + + + +
+
+ + + + + 6 + + + + + + + ) + + + + + + +
+
+ + + + + 7 + + + + + +
+
+ + + + + 8 + + + + + + + func + + + + + + handler + + + ( + + + w http + + + . + + + ResponseWriter + + + , + + + r + + + * + + + http + + + . + + + Request + + + ) + + + + + + { + + + + + + +
+
+ + + + + 9 + + + + fmt + + + . + + + Fprintf + + + ( + + + w + + + , + + + + + + "Hi there, I love %s!" + + + , + + + r + + + . + + + URL + + + . + + + Path + + + [ + + + 1 + + + : + + + ] + + + ) + + + + + + +
+
+ + + + + 10 + + + + + + + } + + + + + + +
+
+ + + + + 11 + + + + + +
+
+ + + + + 12 + + + + + + + func + + + + + + main + + + ( + + + ) + + + + + + { + + + + + + +
+
+ + + + + 13 + + + + http + + + . + + + HandleFunc + + + ( + + + "/" + + + , + + + handler + + + ) + + + + + + +
+
+ + + + + 14 + + + + http + + + . + + + ListenAndServe + + + ( + + + ":8080" + + + , + + + + + + nil + + + ) + + + + + + +
+
+ + + + 15 - + + + + + } + + + + + + +
+
+ + - } + 16 - -
-
-
-
+ + + + +
+ + +

+ + +

Ex amet id ex aliquip id do laborum excepteur exercitation elit sint commodo occaecat nostrud est. Nostrud pariatur esse veniam laborum non sint magna sit laboris minim in id. Aliqua pariatur pariatur excepteur adipisicing irure culpa consequat commodo et ex id ad.

+ +

-

+ + +

- Inline elements + > + Inline elements +

+ +

Sint ea anim ipsum ad commodo cupidatat do @@ -49797,20 +50343,120 @@ Deserunt officia esse aliquip consectetur duis ut labore laborum commodo aliquip . Commodo non ea cupidatat magna deserunt dolore ipsum velit nulla elit veniam nulla eiusmod proident officia.

+ +

Super wide

+ +

Proident sit veniam in est proident officia adipisicing ea tempor cillum non cillum velit deserunt. Voluptate laborum incididunt sit consectetur Lorem irure incididunt voluptate nostrud. Commodo ut eiusmod tempor cupidatat esse enim minim ex anim consequat. Mollit sint culpa qui laboris quis consectetur ad sint esse. Amet anim anim minim ullamco et duis non irure. Sit tempor adipisicing ea laboris - - culpa ex duis sint - +

+
+            
+              
+ + + + + 1 + + + + 1 + + + culpa ex duis sint + + +
+
+
+
anim aute reprehenderit id eu ea. Aute Lorem minim adipisicing nostrud mollit ad ut voluptate do nulla esse occaecat aliqua sint anim.

+ +

Not so big

+ +

Incididunt in culpa cupidatat mollit cillum qui proident sit. In cillum aliquip incididunt voluptate magna amet cupidatat cillum pariatur sint aliqua est @@ -49843,6 +50493,8 @@ Deserunt officia esse aliquip consectetur duis ut labore laborum commodo aliquip . Do deserunt magna mollit Lorem commodo ipsum do cupidatat mollit enim ut elit veniam ea voluptate.

+ +

+ +

Reprehenderit non eu quis in ad elit esse qui aute id -

-
+
+
-

- - Markdown Test Page - - - -

- - -
- -

- - Headings - - - -

- - -

- Heading one +

+ Changelog

+ +

- Sint sit cillum pariatur eiusmod nulla pariatur ipsum. Sit laborum anim qui mollit tempor pariatur nisi minim dolor. Aliquip et adipisicing sit sit fugiat commodo id sunt. Nostrud enim ad commodo incididunt cupidatat in ullamco ullamco Lorem cupidatat velit enim et Lorem. Ut laborum cillum laboris fugiat culpa sint irure do reprehenderit culpa occaecat. Exercitation esse mollit tempor magna aliqua in occaecat aliquip veniam reprehenderit nisi dolor in laboris dolore velit. -

- -

- Heading two - - - -

-
-

- Aute officia nulla deserunt do deserunt cillum velit magna. Officia veniam culpa anim minim dolore labore pariatur voluptate id ad est duis quis velit dolor pariatur enim. Incididunt enim excepteur do veniam consequat culpa do voluptate dolor fugiat ad adipisicing sit. Labore officia est adipisicing dolore proident eiusmod exercitation deserunt ullamco anim do occaecat velit. Elit dolor consectetur proident sunt aliquip est do tempor quis aliqua culpa aute. Duis in tempor exercitation pariatur et adipisicing mollit irure tempor ut enim esse commodo laboris proident. Do excepteur laborum anim esse aliquip eu sit id Lorem incididunt elit irure ea nulla dolor et. Nulla amet fugiat qui minim deserunt enim eu cupidatat aute officia do velit ea reprehenderit. -

- -

- Heading three - - - -

-
-

- Voluptate cupidatat cillum elit quis ipsum eu voluptate fugiat consectetur enim. Quis ut voluptate culpa ex anim aute consectetur dolore proident voluptate exercitation eiusmod. Esse in do anim magna minim culpa sint. Adipisicing ipsum consectetur proident ullamco magna sit amet aliqua aute fugiat laborum exercitation duis et. -

- -

- Heading four - - - -

-
-

- Commodo fugiat aliqua minim quis pariatur mollit id tempor. Non occaecat minim esse enim aliqua adipisicing nostrud duis consequat eu adipisicing qui. Minim aliquip sit excepteur ipsum consequat laborum pariatur excepteur. Veniam fugiat et amet ad elit anim laborum duis mollit occaecat et et ipsum et reprehenderit. Occaecat aliquip dolore adipisicing sint labore occaecat officia fugiat. Quis adipisicing exercitation exercitation eu amet est laboris sunt nostrud ipsum reprehenderit ullamco. Enim sint ut consectetur id anim aute voluptate exercitation mollit dolore magna magna est Lorem. Ut adipisicing adipisicing aliqua ullamco voluptate labore nisi tempor esse magna incididunt. -

- -
- Heading five - - - -
-
-

- Veniam enim esse amet veniam deserunt laboris amet enim consequat. Minim nostrud deserunt cillum consectetur commodo eu enim nostrud ullamco occaecat excepteur. Aliquip et ut est commodo enim dolor amet sint excepteur. Amet ad laboris laborum deserunt sint sunt aliqua commodo ex duis deserunt enim est ex labore ut. Duis incididunt velit adipisicing non incididunt adipisicing adipisicing. Ad irure duis nisi tempor eu dolor fugiat magna et consequat tempor eu ex dolore. Mollit esse nisi qui culpa ut nisi ex proident culpa cupidatat cillum culpa occaecat anim. Ut officia sit ea nisi ea excepteur nostrud ipsum et nulla. -

- -
- Heading six - - - -
-
-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + All notable changes to this project will be documented in this file.

+ +

+ The format is based on - [Top] - -

- -

- - Paragraphs - - - -

- -

- Incididunt ex adipisicing ea ullamco consectetur in voluptate proident fugiat tempor deserunt reprehenderit ullamco id dolore laborum. Do laboris laboris minim incididunt qui consectetur exercitation adipisicing dolore et magna consequat magna anim sunt. Officia fugiat Lorem sunt pariatur incididunt Lorem reprehenderit proident irure. Dolore ipsum aliqua mollit ad officia fugiat sit eu aliquip cupidatat ipsum duis laborum laborum fugiat esse. Voluptate anim ex dolore deserunt ea ex eiusmod irure. Occaecat excepteur aliqua exercitation aliquip dolor esse eu eu. -

-

- Officia dolore laborum aute incididunt commodo nisi velit est est elit et dolore elit exercitation. Enim aliquip magna id ipsum aliquip consectetur ad nulla quis. Incididunt pariatur dolor consectetur cillum enim velit cupidatat laborum quis ex. -

-

- Officia irure in non voluptate adipisicing sit amet tempor duis dolore deserunt enim ut. Reprehenderit incididunt in ad anim et deserunt deserunt Lorem laborum quis. Enim aute anim labore proident laboris voluptate elit excepteur in. Ex labore nulla velit officia ullamco Lorem Lorem id do. Dolore ullamco ipsum magna dolor pariatur voluptate ipsum id occaecat ipsum. Dolore tempor quis duis commodo quis quis enim. -

-

- - [Top] - -

- -

- - Blockquotes - - - -

- -

- Ad nisi laborum aute cupidatat magna deserunt eu id laboris id. Aliquip nulla cupidatat sint ex Lorem mollit laborum dolor amet est ut esse aute. Nostrud ex consequat id incididunt proident ipsum minim duis aliqua ut ex et ad quis. Laborum sint esse cillum anim nulla cillum consectetur aliqua sit. Nisi excepteur cillum labore amet excepteur commodo enim occaecat consequat ipsum proident exercitation duis id in. -

-
-

- Ipsum et cupidatat mollit exercitation enim duis sunt irure aliqua reprehenderit mollit. Pariatur Lorem pariatur laboris do culpa do elit irure. Eiusmod amet nulla voluptate velit culpa et aliqua ad reprehenderit sit ut. -

-
-

- Labore ea magna Lorem consequat aliquip consectetur cillum duis dolore. Et veniam dolor qui incididunt minim amet laboris sit. Dolore ad esse commodo et dolore amet est velit ut nisi ea. Excepteur ea nulla commodo dolore anim dolore adipisicing eiusmod labore id enim esse quis mollit deserunt est. Minim ea culpa voluptate nostrud commodo proident in duis aliquip minim. -

-
-

- Qui est sit et reprehenderit aute est esse enim aliqua id aliquip ea anim. Pariatur sint reprehenderit mollit velit voluptate enim consectetur sint enim. Quis exercitation proident elit non id qui culpa dolore esse aliquip consequat. -

-
-

- Ipsum excepteur cupidatat sunt minim ad eiusmod tempor sit. -

-
-

- Deserunt excepteur adipisicing culpa pariatur cillum laboris ullamco nisi fugiat cillum officia. In cupidatat nulla aliquip tempor ad Lorem Lorem quis voluptate officia consectetur pariatur ex in est duis. Mollit id esse est elit exercitation voluptate nostrud nisi laborum magna dolore dolore tempor in est consectetur. -

-
-

- Adipisicing voluptate ipsum culpa voluptate id aute laboris labore esse fugiat veniam ullamco occaecat do ut. Tempor et esse reprehenderit veniam proident ipsum irure sit ullamco et labore ea excepteur nulla labore ut. Ex aute minim quis tempor in eu id id irure ea nostrud dolor esse. -

-

- - [Top] - -

- -

- - Lists - - - -

- - -

- Ordered List - - - -

-
-
    -
  1. - Longan -
  2. -
  3. - Lychee -
  4. -
  5. - Excepteur ad cupidatat do elit laborum amet cillum reprehenderit consequat quis. -Deserunt officia esse aliquip consectetur duis ut labore laborum commodo aliquip aliquip velit pariatur dolore. -
  6. -
  7. - Marionberry -
  8. -
  9. - Melon -
      -
    • - Cantaloupe -
    • -
    • - Honeydew -
    • -
    • - Watermelon -
    • -
    -
  10. -
  11. - Miracle fruit -
  12. -
  13. - Mulberry -
  14. -
- -

- Unordered List - - - -

-
-
    -
  • - Olive -
  • -
  • - Orange -
      -
    • - Blood orange -
    • -
    • - Clementine -
    • -
    -
  • -
  • - Papaya -
  • -
  • - Ut aute ipsum occaecat nisi culpa Lorem id occaecat cupidatat id id magna laboris ad duis. Fugiat cillum dolore veniam nostrud proident sint consectetur eiusmod irure adipisicing. -
  • -
  • - Passionfruit -
  • -
-

- - [Top] - -

- -

- - Horizontal rule - - - -

- -

- In dolore velit aliquip labore mollit minim tempor veniam eu veniam ad in sint aliquip mollit mollit. Ex occaecat non deserunt elit laborum sunt tempor sint consequat culpa culpa qui sit. Irure ad commodo eu voluptate mollit cillum cupidatat veniam proident amet minim reprehenderit. -

-
-

- In laboris eiusmod reprehenderit aliquip sit proident occaecat. Non sit labore anim elit veniam Lorem minim commodo eiusmod irure do minim nisi. Dolor amet cillum excepteur consequat sint non sint. -

-

- - [Top] - -

- -

- - Table - - - -

- -

- Duis sunt ut pariatur reprehenderit mollit mollit magna dolore in pariatur nulla commodo sit dolor ad fugiat. Laboris amet ea occaecat duis eu enim exercitation deserunt ea laborum occaecat reprehenderit. Et incididunt dolor commodo consequat mollit nisi proident non pariatur in et incididunt id. Eu ut et Lorem ea ex magna minim ipsum ipsum do. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Table Heading 1 - - Table Heading 2 - - Center align - - Right align - - Table Heading 5 -
- Item 1 - - Item 2 - - Item 3 - - Item 4 - - Item 5 -
- Item 1 - - Item 2 - - Item 3 - - Item 4 - - Item 5 -
- Item 1 - - Item 2 - - Item 3 - - Item 4 - - Item 5 -
- Item 1 - - Item 2 - - Item 3 - - Item 4 - - Item 5 -
- Item 1 - - Item 2 - - Item 3 - - Item 4 - - Item 5 -
-

- Minim id consequat adipisicing cupidatat laborum culpa veniam non consectetur et duis pariatur reprehenderit eu ex consectetur. Sunt nisi qui eiusmod ut cillum laborum Lorem officia aliquip laboris ullamco nostrud laboris non irure laboris. Cillum dolore labore Lorem deserunt mollit voluptate esse incididunt ex dolor. -

-

- - [Top] - -

- -

- - Code - - - -

- - -

- Inline code - - - -

-
-

- Ad amet irure est magna id mollit Lorem in do duis enim. Excepteur velit nisi magna ea pariatur pariatur ullamco fugiat deserunt sint non sint. Duis duis est - - code in text - - velit velit aute culpa ex quis pariatur pariatur laborum aute pariatur duis tempor sunt ad. Irure magna voluptate dolore consectetur consectetur irure esse. Anim magna - - <strong>in culpa qui officia</strong> - - dolor eiusmod esse amet aute cupidatat aliqua do id voluptate cupidatat reprehenderit amet labore deserunt. -

- -

- Highlighted - - - -

-
-

- Et fugiat ad nisi amet magna labore do cillum fugiat occaecat cillum Lorem proident. In sint dolor ullamco ad do adipisicing amet id excepteur Lorem aliquip sit irure veniam laborum duis cillum. Aliqua occaecat minim cillum deserunt magna sunt laboris do do irure ea nostrud consequat ut voluptate ex. -

-
-
-          
-            
- - - - - 1 - - - - package - - - main - - - -
-
- - - - - 2 - - - - - -
-
- - - - - 3 - - - - - - - import - - - - - - ( - - - - - - -
-
- - - - - 4 - - - - - - - "fmt" - - - - - - -
-
- - - - - 5 - - - - - - - "net/http" - - - - - - -
-
- - - - - 6 - - - - - - - ) - - - - - - -
-
- - - - - 7 - - - - - -
-
- - - - - 8 - - - - - - - func - - - - - - handler - - - ( - - - w http - - - . - - - ResponseWriter - - - , - - - r - - - * - - - http - - - . - - - Request - - - ) - - - - - - { - - - - - - -
-
- - - - - 9 - - - - fmt - - - . - - - Fprintf - - - ( - - - w - - - , - - - - - - "Hi there, I love %s!" - - - , - - - r - - - . - - - URL - - - . - - - Path - - - [ - - - 1 - - - : - - - ] - - - ) - - - - - - -
-
- - - - - 10 - - - - - - - } - - - - - - -
-
- - - - - 11 - - - - - -
-
- - - - - 12 - - - - - - - func - - - - - - main - - - ( - - - ) - - - - - - { - - - - - - -
-
- - - - - 13 - - - - http - - - . - - - HandleFunc - - - ( - - - "/" - - - , - - - handler - - - ) - - - - - - -
-
- - - - - 14 - - - - http - - - . - - - ListenAndServe - - - ( - - - ":8080" - - - , - - - - - - nil - - - ) - - - - - - -
-
- - - - - 15 - - - - 15 - - - - - - } - - -
-
-
-
-

- Ex amet id ex aliquip id do laborum excepteur exercitation elit sint commodo occaecat nostrud est. Nostrud pariatur esse veniam laborum non sint magna sit laboris minim in id. Aliqua pariatur pariatur excepteur adipisicing irure culpa consequat commodo et ex id ad. -

-

- - [Top] - -

- -

- - Inline elements - - - -

- -

- Sint ea anim ipsum ad commodo cupidatat do - - exercitation - - incididunt et minim ad labore sunt. Minim deserunt labore laboris velit nulla incididunt ipsum nulla. Ullamco ad laborum ea qui et anim in laboris exercitation tempor sit officia laborum reprehenderit culpa velit quis. - - Consequat commodo - - reprehenderit duis - - irure - - esse esse exercitation minim enim Lorem dolore duis irure. Nisi Lorem reprehenderit ea amet excepteur dolor excepteur magna labore proident voluptate ipsum. Reprehenderit ex esse deserunt aliqua ea officia mollit Lorem nulla magna enim. Et ad ipsum labore enim ipsum - - cupidatat consequat - - . Commodo non ea cupidatat magna deserunt dolore ipsum velit nulla elit veniam nulla eiusmod proident officia. -

-

- Super wide -

-

- - Proident sit veniam in est proident officia adipisicing - - ea tempor cillum non cillum velit deserunt. Voluptate laborum incididunt sit consectetur Lorem irure incididunt voluptate nostrud. Commodo ut eiusmod tempor cupidatat esse enim minim ex anim consequat. Mollit sint culpa qui laboris quis consectetur ad sint esse. Amet anim anim minim ullamco et duis non irure. Sit tempor adipisicing ea laboris - - culpa ex duis sint - - anim aute reprehenderit id eu ea. Aute - - excepteur proident - - Lorem minim adipisicing nostrud mollit ad ut voluptate do nulla esse occaecat aliqua sint anim. -

-

- Not so big -

-

- Incididunt in culpa cupidatat mollit cillum qui proident sit. In cillum aliquip incididunt voluptate magna amet cupidatat cillum pariatur sint aliqua est - - enim - - anim - - voluptate - - . Magna aliquip proident incididunt id duis pariatur eiusmod incididunt commodo culpa dolore sit. Culpa do nostrud elit ad exercitation anim pariatur non minim nisi - - adipisicing sunt - - officia - - - . Do deserunt magna mollit Lorem commodo ipsum do cupidatat mollit enim ut elit veniam ea voluptate. -

-

- - Manny Pacquiao + Keep a Changelog -

-

- Reprehenderit non eu quis in ad elit esse qui aute id + , +and this project adheres to - incididunt + Semantic Versioning - dolore cillum. Esse laboris consequat dolor anim exercitation tempor aliqua deserunt velit magna laboris. Culpa culpa minim duis amet mollit do quis amet commodo nulla irure. + .

+ + + +

+ Compl_icated_H€aDer + + + +

+
+ + + +

+ + 2.16.0 + + - 2021-03-26 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Metrics for http requests ( + + #1586 + + ) +
  • + + +
  • + Metrics for executor services ( + + #1586 + + ) +
  • + + +
  • + Metrics about logging, file descriptors, process threads and process memory ( + + #1609 + + ) +
  • + + +
  • + Metrics for events ( + + #1601 + + ) +
  • + + +
  • + Authentication and access metrics ( + + #1595 + + ) +
  • + + +
  • + Adds metrics over lifetime duration of working copies ( + + #1591 + + ) +
  • + + +
  • + Collect guava caching statistics as metrics ( + + #1590 + + ) +
  • + + +
  • + Add global flag to enable/disable api keys ( + + #1606 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Adjust path and filename validation to prevent path traversal ( + + #1604 + + ) +
  • + + +
  • + Wrong subject context for asynchronous subscriber ( + + #1601 + + ) +
  • + + +
  • + Fix repository creation route from repository namespace overview page ( + + #1602 + + ) +
  • + + +
  • + external nav links now correctly collapse when used in a menu ( + + #1596 + + ) +
  • + + +
  • + Response with exception stack trace for invalid urls ( + + #1605 + + ) +
  • + + +
  • + Do not show repositories on overview for not existing namespace ( + + #1608 + + ) +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Show "CUSTOM" name instead empty entry for permission roles ( + + #1597 + + ) +
  • + + +
  • + Improve error messages for invalid media types ( + + #1607 + + ) +
  • + + +
  • + Allow all UTF-8 characters except URL identifiers as user and group names and for namespaces. ( + + #1600 + + ) +
  • + + +
+ + + +

+ + 2.15.1 + + - 2021-03-17 + + + +

+ + + + +

+ Fixed + + + +

+
+ + + + + + +

+ + 2.15.0 + + - 2021-03-12 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Create api for markdown ast plugins ( + + #1578 + + ) +
  • + + +
  • + Partial diff ( + + #1581 + + ) +
  • + + +
  • + Added filepath search ( + + #1568 + + ) +
  • + + +
  • + API for metrics ( + + #1576 + + ) +
  • + + +
  • + Add repository-specific non-fast-forward disallowed option ( + + #1579 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Fix wrapping of title and actions in source view ( + + #1569 + + ) +
  • + + +
  • + Split SetupContextListener logic into new Privileged Startup API ( + + #1573 + + ) +
  • + + +
  • + Mark configuration files in debian package ( + + #1574 + + ) +
  • + + +
+ + + +

+ + 2.14.1 + + - 2021-03-03 + + + +

+ + + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Prevent breadcrumb overflow and shrink large elements ( + + #1563 + + ) +
  • + + +
  • + Clarify that FileUpload component does not upload directly ( + + #1566 + + ) +
  • + + +
  • + Prevent xss from stored markdown ( + + #1566 + + ) +
  • + + +
  • + Fix endless loading spinner for sources of empty repositories ( + + #1565 + + ) +
  • + + +
  • + Fix missing permalink button to markdown headings ( + + #1564 + + ) +
  • + + +
  • + Fix redirect after logout if is set +
  • + + +
+ + + +

+ + 2.14.0 + + - 2021-03-01 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Repository data can be migrated independently to enable the import of dumps from older versions ( + + #1526 + + ) +
  • + + +
  • + XML attribute in root element of config entry stores ( + + #1545 + + ) +
  • + + +
  • + Add option to encrypt repository exports with a password and decrypt them on repository import ( + + #1533 + + ) +
  • + + +
  • + Make repository export asynchronous. ( + + #1533 + + ) +
  • + + +
  • + Lock repository to "read-only" access during export ( + + #1519 + + ) +
  • + + +
  • + Warn user to not leave page during repository import ( + + #1536 + + ) +
  • + + +
  • + Import repository permissions from repository archive ( + + #1520 + + ) +
  • + + +
  • + Added import protocols ( + + #1558 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Loading of cache configuration from plugins ( + + #1540 + + ) +
  • + + +
  • + Missing error message for wrong password ( + + #1527 + + ) +
  • + + +
  • + Sporadic error in reading git pack files ( + + #1518 + + ) +
  • + + +
  • + Fix permission check for branch deletion ( + + #1515 + + ) +
  • + + +
  • + Fix broken mercurial http post args configuration ( + + #1532 + + ) +
  • + + +
  • + Do not resolve external groups for system accounts ( + + #1541 + + ) +
  • + + +
  • + Wrong redirect on paginated overviews ( + + #1535 + + ) +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Config entry stores are handled explicitly in exports ( + + #1545 + + ) +
  • + + +
  • + Allow usage of cache as shiro authentication and authorization cache ( + + #1540 + + ) +
  • + + +
  • + Implement new changelog process ( + + #1517 + + ) +
  • + + +
  • + Fire post receive repository hook event after the repository import has been finished. ( + + #1544 + + ) +
  • + + +
  • + improve frontend performance with stale while revalidate pattern ( + + #1555 + + ) +
  • + + +
  • + Change the order of files inside the repository archive ( + + #1538 + + ) +
  • + + +
+ + + +

+ + 2.13.0 + + - 2021-01-29 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Repository export for Subversion ( + + #1488 + + ) +
  • + + +
  • + Provide more options for Helm chart ( + + #1485 + + ) +
  • + + +
  • + Option to create a permanent link to a source file ( + + #1489 + + ) +
  • + + +
  • + Markdown codeblock renderer extension point ( + + #1492 + + ) +
  • + + +
  • + Java version added to plugin center url ( + + #1494 + + ) +
  • + + +
  • + Font ttf-dejavu included oci image ( + + #1498 + + ) +
  • + + +
  • + Repository import and export with metadata for Subversion ( + + #1501 + + ) +
  • + + +
  • + API for store rename/delete in update steps ( + + #1505 + + ) +
  • + + +
  • + Import and export for Git via dump file ( + + #1507 + + ) +
  • + + +
  • + Import and export for Mercurial via dump file ( + + #1511 + + ) +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Directory name for git LFS files ( + + #1504 + + ) +
  • + + +
  • + Temporary data for repositories is kept in the repository directory, not in a global directory ( + + #1510 + + ) +
  • + + +
  • + Migrate integration tests to bdd ( + + #1497 + + ) +
  • + + +
  • + Layout of proxy settings ( + + #1502 + + ) +
  • + + +
  • + Apply test ids to production builds for usage in e2e tests ( + + #1499 + + ) +
  • + + +
  • + Bump google guava version to 30.1-jre +
  • + + +
  • + Refactor table component so that it can be styled by styled-components ( + + #1503 + + ) +
  • + + +
  • + Enrich styleguide with new features, rules and changes ( + + #1506 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Add explicit provider setup for bouncy castle ( + + #1500 + + ) +
  • + + +
  • + Repository contact information is editable ( + + #1508 + + ) +
  • + + +
  • + Usage of custom realm description for scm protocols ( + + #1512 + + ) +
  • + + +
+ + + +

+ + 2.12.0 + + - 2020-12-17 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Add repository import via dump file for Subversion ( + + #1471 + + ) +
  • + + +
  • + Add support for permalinks to lines in source code view ( + + #1472 + + ) +
  • + + +
  • + Add "archive" flag for repositories to make them immutable ( + + #1477 + + ) +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Implement mercurial cgi protocol as extension ( + + #1458 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Add "Api Key" page link to sub-navigation of "User" and "Me" sections ( + + #1464 + + ) +
  • + + +
  • + Empty page on repository namespace filter ( + + #1476 + + ) +
  • + + +
  • + Usage of namespace filter and search action together on repository overview ( + + #1476 + + ) +
  • + + +
  • + Fix tooltip arrow height in firefox ( + + #1479 + + ) +
  • + + +
  • + Accidentally blocked requests with non ascii characters ( + + #1480 + + and + + #1469 + + ) +
  • + + +
+ + + +

+ + 2.11.1 + + - 2020-12-07 + + + +

+ + + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Initialization of new git repository with master set as default branch ( + + #1467 + + and + + #1470 + + ) +
  • + + +
+ + + +

+ + 2.11.0 + + - 2020-12-04 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Add tooltips to short links on repository overview ( + + #1441 + + ) +
  • + + +
  • + Show the date of the last commit for branches in the frontend ( + + #1439 + + ) +
  • + + +
  • + Unify and add description to key view across user settings ( + + #1440 + + ) +
  • + + +
  • + Healthcheck for docker image ( + + #1428 + + and + + #1454 + + ) +
  • + + +
  • + Tags can now be added and deleted through the ui ( + + #1456 + + ) +
  • + + +
  • + The ui now displays tag signatures ( + + #1456 + + ) +
  • + + +
  • + Repository import via URL for git ( + + #1460 + + ) +
  • + + +
  • + Repository import via URL for hg ( + + #1463 + + ) +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Send mercurial hook callbacks over separate tcp socket instead of http ( + + #1416 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Language detection of files with interpreter parameters e.g.: +
    +
    +              
    +                
    + + + + + 1 + + + + 1 + + + #!/usr/bin/make -f + + +
    +
    +
    +
    + ( + + #1450 + + ) +
  • + + +
  • + Unexpected mercurial server pool stop ( + + #1446 + + and + + #1457 + + ) +
  • + + +
+ + + +

+ + 2.10.1 + + - 2020-11-24 + + + +

+ + + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Improved logging of failures during plugin installation ( + + #1442 + + ) +
  • + + +
  • + Do not throw exception when plugin file does not exist on cancelled installation ( + + #1442 + + ) +
  • + + +
+ + + +

+ + 2.10.0 + + - 2020-11-20 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Delete branches directly in the UI ( + + #1422 + + ) +
  • + + +
  • + Lookup command which provides further repository information ( + + #1415 + + ) +
  • + + +
  • + Include messages from scm protocol in modification or merge errors ( + + #1420 + + ) +
  • + + +
  • + Enhance trace api to accepted status codes ( + + #1430 + + ) +
  • + + +
  • + Add examples to core resources to simplify usage of rest api ( + + #1434 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Missing close of hg diff command ( + + #1417 + + ) +
  • + + +
  • + Error on repository initialization with least-privilege user ( + + #1414 + + ) +
  • + + +
  • + Adhere to git quiet flag ( + + #1421 + + ) +
  • + + +
  • + Resolve svn binary diffs properly + + #1427 + +
  • + + +
+ + + +

+ + 2.9.1 + + - 2020-11-11 + + + +

+ + + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + German translation for repositories view +
  • + + +
+ + + +

+ + 2.9.0 + + - 2020-11-06 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Tracing api ( + + #1393 + + ) +
  • + + +
  • + Automatic user converter for external users ( + + #1380 + + ) +
  • + + +
  • + Create _authenticated group on setup ( + + #1396 + + ) +
  • + + +
  • + The name of the initial git branch can be configured and is set to +
    +
    +              
    +                
    + + + + + 1 + + + + 1 + + + main + + +
    +
    +
    +
    + by default ( + + #1399 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Internal server error for git sub modules without tree object ( + + #1397 + + ) +
  • + + +
  • + Do not expose subversion commit with id 0 ( + + #1395 + + ) +
  • + + +
  • + Cloning of Mercurial repositories with api keys ( + + #1407 + + ) +
  • + + +
  • + Disable cloning repositories via ssh for anonymous users ( + + #1403 + + ) +
  • + + +
  • + Support anonymous file download through rest api for non-browser clients (e.g. curl or postman) when anonymous mode is set to protocol-only ( + + #1402 + + ) +
  • + + +
  • + SVN diff with property changes ( + + #1400 + + ) +
  • + + +
  • + Branches link in repository overview ( + + #1404 + + ) +
  • + + +
+ + + +

+ + 2.8.0 + + - 2020-10-27 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Generation of email addresses for users, where none is configured ( + + #1370 + + ) +
  • + + +
  • + Source code fullscreen view ( + + #1376 + + ) +
  • + + +
  • + Plugins can now expose ui components to be shared with other plugins ( + + #1382 + + ) +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Reduce logging of ApiTokenRealm ( + + #1385 + + ) +
  • + + +
  • + Centralise syntax highlighting ( + + #1382 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Handling of snapshot plugin dependencies ( + + #1384 + + ) +
  • + + +
  • + SyntaxHighlighting for GoLang ( + + #1386 + + ) +
  • + + +
  • + Privilege escalation for api keys ( + + #1388 + + ) +
  • + + +
+ + + +

+ + 2.6.3 + + - 2020-10-16 + + + +

+ + + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Missing default permission to manage public gpg keys ( + + #1377 + + ) +
  • + + +
+ + + +

+ + 2.7.1 + + - 2020-10-14 + + + +

+ + + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Null Pointer Exception on anonymous migration with deleted repositories ( + + #1371 + + ) +
  • + + +
  • + Null Pointer Exception on parsing SVN properties ( + + #1373 + + ) +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Reduced logging for invalid JWT or api keys ( + + #1374 + + ) +
  • + + +
+ + + +

+ + 2.7.0 + + - 2020-10-12 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Users can create API keys with limited permissions ( + + #1359 + + ) +
  • + + +
+ + + +

+ + 2.6.2 + + - 2020-10-09 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Introduce api for handling token validation failed exception ( + + #1362 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Align actionbar item horizontal and enforce correct margin between them ( + + #1358 + + ) +
  • + + +
  • + Fix recursive browse command for git ( + + #1361 + + ) +
  • + + +
  • + SubRepository support ( + + #1357 + + ) +
  • + + +
+ + + +

+ + 2.6.1 + + - 2020-09-30 + + + +

+ + + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Not found error when using browse command in empty hg repository ( + + #1355 + + ) +
  • + + +
+ + + +

+ + 2.6.0 + + - 2020-09-25 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Add support for pr merge with prior rebase ( + + #1332 + + ) +
  • + + +
  • + Tags overview for repository ( + + #1331 + + ) +
  • + + +
  • + Permissions can be specified for namespaces ( + + #1335 + + ) +
  • + + +
  • + Show update info on admin information page ( + + #1342 + + ) +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Rework modal to use react portal ( + + #1349 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Missing synchronization during repository creation ( + + #1328 + + ) +
  • + + +
  • + Missing BranchCreatedEvent for mercurial ( + + #1334 + + ) +
  • + + +
  • + Branch not found right after creation ( + + #1334 + + ) +
  • + + +
  • + Overflow for too long branch names ( + + #1339 + + ) +
  • + + +
  • + Set default branch in branch selector if nothing is selected ( + + #1338 + + ) +
  • + + +
  • + Handling of branch with slashes in source view ( + + #1340 + + ) +
  • + + +
  • + Detect not existing paths correctly in Mercurial ( + + #1343 + + ) +
  • + + +
  • + Return correct revisions for tags in hooks for git repositories ( + + #1344 + + ) +
  • + + +
  • + Add option for concrete commit message in merges without templating ( + + #1351 + + ) +
  • + + +
+ + + +

+ + 2.5.0 + + - 2020-09-10 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Tags now have date information attached ( + + #1305 + + ) +
  • + + +
  • + Add support for scroll anchors in url hash of diff page ( + + #1304 + + ) +
  • + + +
  • + Documentation regarding data and plugin migration from v1 to v2 ( + + #1321 + + ) +
  • + + +
  • + Add RepositoryCreationDto with creation context and extension-point for repository initialization ( + + #1324 + + ) +
  • + + +
  • + UI filter and rest endpoints for namespaces ( + + #1323 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Redirection to requested page after login in anonymous mode +
  • + + +
  • + Update filter state on property change ( + + #1327 + + ) +
  • + + +
  • + Diff view for svn now handles whitespaces in filenames properly ( + + 1325 + + ) +
  • + + +
  • + Validate new namespace on repository rename ( + + #1322 + + ) +
  • + + +
+ + + +

+ + 2.4.1 + + - 2020-09-01 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Add "sonia.scm.restart-migration.wait" to set wait in milliseconds before restarting scm-server after migration ( + + #1308 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Fix detection of markdown files for files having content does not start with '#' ( + + #1306 + + ) +
  • + + +
  • + Fix broken markdown rendering ( + + #1303 + + ) +
  • + + +
  • + JWT token timeout is now handled properly ( + + #1297 + + ) +
  • + + +
  • + Fix text-overflow in danger zone ( + + #1298 + + ) +
  • + + +
  • + Fix plugin installation error if previously a plugin was installed with the same dependency which is still pending. ( + + #1300 + + ) +
  • + + +
  • + Fix layout overflow on changesets with multiple tags ( + + #1314 + + ) +
  • + + +
  • + Make checkbox accessible from keyboard ( + + #1309 + + ) +
  • + + +
  • + Fix logging of large stacktrace for unknown language ( + + #1313 + + ) +
  • + + +
  • + Fix incorrect word breaking behaviour in markdown ( + + #1317 + + ) +
  • + + +
  • + Remove obsolete revision encoding on sources ( + + #1315 + + ) +
  • + + +
  • + Map generic JaxRS 'web application exceptions' to appropriate response instead of "internal server error" ( + + #1318 + + ) +
  • + + +
+ + + +

+ + 2.4.0 + + - 2020-08-14 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Introduced merge detection for receive hooks ( + + #1278 + + ) +
  • + + +
  • + Anonymous mode for the web ui ( + + #1284 + + ) +
  • + + +
  • + Add link to source file in diff sections ( + + #1267 + + ) +
  • + + +
  • + Check versions of plugin dependencies on plugin installation ( + + #1283 + + ) +
  • + + +
  • + Sign PR merges and commits performed through ui with generated private key ( + + #1285 + + ) +
  • + + +
  • + Add generic popover component to ui-components ( + + #1285 + + ) +
  • + + +
  • + Show changeset signatures in ui and add public keys ( + + #1273 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Repository names may not end with ".git" ( + + #1277 + + ) +
  • + + +
  • + Add preselected value to options in dropdown component if missing ( + + #1287 + + ) +
  • + + +
  • + Show error message if plugin loading failed ( + + #1289 + + ) +
  • + + +
  • + Fix timing problem with anchor links for markdown view ( + + #1290 + + ) +
  • + + +
+ + + +

+ + 2.3.1 + + - 2020-08-04 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + New api to resolve SCM-Manager root url ( + + #1276 + + ) +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Help tooltips are now multiline by default ( + + #1271 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Fixed unnecessary horizontal scrollbar in modal dialogs ( + + #1271 + + ) +
  • + + +
  • + Avoid stacktrace logging when protocol url is accessed outside of request scope ( + + #1276 + + ) +
  • + + +
+ + + +

+ + 2.3.0 + + - 2020-07-23 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Add branch link provider to access branch links in plugins ( + + #1243 + + ) +
  • + + +
  • + Add key value input field component ( + + #1246 + + ) +
  • + + +
  • + Update installed optional plugin dependencies upon plugin upgrade ( + + #1260 + + ) +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Adding start delay to liveness and readiness probes in helm chart template +
  • + + +
  • + Init svn repositories with trunk folder ( + + #1259 + + ) +
  • + + +
  • + Show line numbers in source code view by default ( + + #1265 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Fixed file extension detection with new spotter version +
  • + + +
  • + Fixed wrong cache directory location ( + + #1236 + + and + + #1242 + + ) +
  • + + +
  • + Fixed error in update step ( + + #1237 + + and + + #1244 + + ) +
  • + + +
  • + Fix incorrect trimming of whitespaces in helm chart templates +
  • + + +
  • + Fixed error on empty diff expand response ( + + #1247 + + ) +
  • + + +
  • + Ignore ports on proxy exclusions ( + + #1256 + + ) +
  • + + +
  • + Invalidate branches cache synchronously on create new branch ( + + #1261 + + ) +
  • + + +
+ + + +

+ + 2.2.0 + + - 2020-07-03 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Rename repository name (and namespace if permitted) ( + + #1218 + + ) +
  • + + +
  • + Enrich commit mentions in markdown viewer by internal links ( + + #1210 + + ) +
  • + + +
  • + New extension point +
    +
    +              
    +                
    + + + + + 1 + + + + 1 + + + changeset.description.tokens + + +
    +
    +
    +
    + to "enrich" commit messages ( + + #1231 + + ) +
  • + + +
  • + Restart service after rpm or deb package upgrade +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Checkboxes can now be 'indeterminate' ( + + #1215 + + ) +
  • + + +
  • + The old frontend extension point +
    +
    +              
    +                
    + + + + + 1 + + + + 1 + + + changeset.description + + +
    +
    +
    +
    + is deprecated and should be replaced with +
    +
    +              
    +                
    + + + + + 1 + + + + 1 + + + changeset.description.tokens + + +
    +
    +
    +
    + ( + + #1231 + + ) +
  • + + +
  • + Required plugins will be updated, too, when a plugin is updated ( + + #1233 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Fixed installation of debian packages on distros without preinstalled +
    +
    +              
    +                
    + + + + + 1 + + + + 1 + + + at + + +
    +
    +
    +
    + ( + + #1216 + + and + + #1217 + + ) +
  • + + +
  • + Fixed restart with deb or rpm installation ( + + #1222 + + and + + #1227 + + ) +
  • + + +
  • + Fixed broken migration with empty security.xml ( + + #1219 + + and + + #1221 + + ) +
  • + + +
  • + Added missing architecture to debian installation documentation ( + + #1230 + + ) +
  • + + +
  • + Mercurial on Python 3 ( + + #1232 + + ) +
  • + + +
  • + Fixed wrong package information for deb and rpm packages ( + + #1229 + + ) +
  • + + +
  • + Fixed missing content type on migration wizard ( + + #1234 + + ) +
  • + + +
+ + + +

+ + 2.1.1 + + - 2020-06-23 + + + +

+ + + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Wait until recommended java installation is available for deb packages ( + + #1209 + + ) +
  • + + +
  • + Do not force java home of recommended java dependency for rpm and deb packages ( + + #1195 + + and + + #1208 + + ) +
  • + + +
  • + Migration of non-bare repositories ( + + #1213 + + ) +
  • + + +
+ + + +

+ + 2.1.0 + + - 2020-06-18 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Option to configure jvm parameter of docker container with env JAVA_OPTS or with arguments ( + + #1175 + + ) +
  • + + +
  • + Added links in diff views to expand the gaps between "hunks" ( + + #1178 + + ) +
  • + + +
  • + Show commit contributors in table on changeset details view ( + + #1169 + + ) +
  • + + +
  • + Show changeset parents on changeset details view ( + + #1189 + + ) +
  • + + +
  • + Annotate view to display commit metadata for each line of a file ( + + #1196 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Avoid caching of detected browser language ( + + #1176 + + ) +
  • + + +
  • + Fixes configuration of jetty listener address with system property +
    +
    +              
    +                
    + + + + + 1 + + + + 1 + + + jetty.host + + +
    +
    +
    +
    + ( + + #1173 + + , + + #1174 + + ) +
  • + + +
  • + Fixes loading plugin bundles with context path +
    +
    +              
    +                
    + + + + + 1 + + + + 1 + + + / + + +
    +
    +
    +
    + ( + + #1182 + + , + + #1181 + + ) +
  • + + +
  • + Sets the new plugin center URL once ( + + #1184 + + ) +
  • + + +
  • + Diffs with CR characters are parsed correctly ( + + #1185 + + ) +
  • + + +
  • + Close file lists in migration ( + + #1191 + + ) +
  • + + +
  • + Use command in javahg.py from registrar (Upgrade to newer javahg version) ( + + #1192 + + ) +
  • + + +
  • + Fixed wrong e-tag format ( + + sdorra/web-resource #1 + + ) +
  • + + +
  • + Fixed refetching loop for non existing changesets ( + + #1203 + + ) +
  • + + +
  • + Fixed active state of sub navigation items, which are using activeWhenMatch ( + + #1199 + + ) +
  • + + +
  • + Handles repositories in custom directories correctly in migration from 1.x ( + + #1201 + + ) +
  • + + +
  • + Usage of short git commit ids in changeset urls ( + + #1200 + + ) +
  • + + +
  • + Fixes linebreaks in multiline tooltip ( + + #1207 + + ) +
  • + + +
+ + + +

+ + 2.0.0 + + - 2020-06-04 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Detect renamed files in git and hg diffs ( + + #1157 + + ) +
  • + + +
  • + ClassLoader and Adapter parameters to typed store apis ( + + #1111 + + ) +
  • + + +
  • + Native packaging for Debian, Red Hat, Windows, Unix, Docker and Kubernetes ( + + #1165 + + ) +
  • + + +
  • + Cache for working directories ( + + #1166 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Correctly resolve Links in markdown files ( + + #1152 + + ) +
  • + + +
  • + Missing copy on write in the data store ( + + #1155 + + ) +
  • + + +
  • + Resolved conflicting dependencies for scm-webapp ( + + #1159 + + ) +
  • + + +
+ + + +

+ + 2.0.0-rc8 + + - 2020-05-08 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Add iconStyle + onClick option and story shot for icon component ( + + #1100 + + ) +
  • + + +
  • + Making WebElements (Servlet or Filter) optional by using the +
    +
    +              
    +                
    + + + + + 1 + + + + 1 + + + @Requires + + +
    +
    +
    +
    + annotation ( + + #1101 + + ) +
  • + + +
  • + Add class to manually validate rest data transfer objects with javax validation annotations ( + + #1114 + + ) +
  • + + +
  • + Missing stories for ui-components ( + + #1140 + + ) +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Removed the +
    +
    +              
    +                
    + + + + + 1 + + + + 1 + + + requires + + +
    +
    +
    +
    + attribute on the +
    +
    +              
    +                
    + + + + + 1 + + + + 1 + + + @Extension + + +
    +
    +
    +
    + annotation and instead create a new +
    +
    +              
    +                
    + + + + + 1 + + + + 1 + + + @Requires + + +
    +
    +
    +
    + annotation ( + + #1097 + + ) +
  • + + +
  • + Update guide to prevent common pitfalls in ui development ( + + #1107 + + ) +
  • + + +
  • + Use os specific locations for scm home directory ( + + #1109 + + ) +
  • + + +
  • + Use Library/Logs/SCM-Manager on OSX for logging ( + + #1109 + + ) +
  • + + +
  • + Cleanup outdated jaxb annotation in scm-core ( + + #1136 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Protocol URI for git commands under windows ( + + #1108 + + ) +
  • + + +
  • + Fix usage of invalid cipher algorithm on newer java versions ( + + #1110 + + , + + #1112 + + ) +
  • + + +
  • + Handle obscure line breaks in diff viewer ( + + #1129 + + ) +
  • + + +
  • + Validate subversion client checksum ( + + #1113 + + ) +
  • + + +
  • + Fix plugin manage permission ( + + #1135 + + ) +
  • + + +
+ + + +

+ + 2.0.0-rc7 + + - 2020-04-09 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Fire various plugin events ( + + #1088 + + ) +
  • + + +
  • + Display version for plugins ( + + #1089 + + ) +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Simplified collapse state management of the secondary navigation ( + + #1086 + + ) +
  • + + +
  • + Ensure same monospace font-family throughout whole SCM-Manager ( + + #1091 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Authentication for write requests for repositories with anonymous read access ( + + #108 + + ) +
  • + + +
  • + Submodules in git do no longer lead to a server error in the browser command ( + + #1093 + + ) +
  • + + +
+ + + +

+ + 2.0.0-rc6 + + - 2020-03-26 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Extension point to add links to the repository cards from plug ins ( + + #1041 + + ) +
  • + + +
  • + Libc based restart strategy for posix operating systems ( + + #1079 + + ) +
  • + + +
  • + Simple restart strategy with System.exit ( + + #1079 + + ) +
  • + + +
  • + Notification if restart is not supported on the underlying platform ( + + #1079 + + ) +
  • + + +
  • + Extension point before title in repository cards ( + + #1080 + + ) +
  • + + +
  • + Extension point after title on repository detail page ( + + #1080 + + ) +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Update resteasy to version 4.5.2.Final +
  • + + +
  • + Update shiro to version 1.5.2 +
  • + + +
  • + Use browser built-in EventSource for apiClient subscriptions +
  • + + +
  • + Changeover to MIT license ( + + #1066 + + ) +
  • + + +
+ + + +

+ Removed + + + +

+
+ + +
    + + +
  • + EventSource Polyfill +
  • + + +
  • + ClassLoader based restart logic ( + + #1079 + + ) +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + + + + + +

+ + 2.0.0-rc5 + + - 2020-03-12 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Added footer extension points for links and avatar +
  • + + +
  • + Create OpenAPI specification during build +
  • + + +
  • + Extension point entries with supplied extensionName are sorted ascending +
  • + + +
  • + Possibility to configure git core config entries for jgit like core.trustfolderstat and core.supportsatomicfilecreation +
  • + + +
  • + Babel-plugin-styled-components for persistent generated classnames +
  • + + +
  • + By default, only 100 files will be listed in source view in one request +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + New footer design +
  • + + +
  • + Update jgit to version 5.6.1.202002131546-r-scm1 +
  • + + +
  • + Update svnkit to version 1.10.1-scm1 +
  • + + +
  • + Secondary navigation collapsable +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Modification for mercurial repositories with enabled XSRF protection +
  • + + +
  • + Does not throw NullPointerException when merge fails without normal merge conflicts +
  • + + +
  • + Keep file attributes on modification +
  • + + +
  • + Drop Down Component works again with translations +
  • + + +
+ + + +

+ Removed + + + +

+
+ + +
    + + +
  • + Enunciate rest documentation +
  • + + +
  • + Obsolete fields in data transfer objects +
  • + + +
+ + + +

+ + 2.0.0-rc4 + + - 2020-02-14 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Support for Java versions > 8 +
  • + + +
  • + Simple ClassLoaderLifeCycle to fix integration tests on Java > 8 +
  • + + +
  • + Option to use a function for default collapse state in diffs +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Use icon only buttons for diff file controls +
  • + + +
  • + Upgrade + + Legman + + to v1.6.2 in order to fix execution on Java versions > 8 +
  • + + +
  • + Upgrade + + Lombok + + to version 1.18.10 in order to fix build on Java versions > 8 +
  • + + +
  • + Upgrade + + Mockito + + to version 2.28.2 in order to fix tests on Java versions > 8 +
  • + + +
  • + Upgrade smp-maven-plugin to version 1.0.0-rc3 +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + + + + + +

+ + 2.0.0-rc3 + + - 2020-01-31 + + + +

+ + + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Broken plugin order fixed +
  • + + +
  • + MarkdownViewer in code section renders markdown properly +
  • + + +
+ + + +

+ + 2.0.0-rc2 + + - 2020-01-29 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Set individual page title +
  • + + +
  • + Copy on write +
  • + + +
  • + A new repository can be initialized with a branch (for git and mercurial) and custom files (README.md on default) +
  • + + +
  • + Plugins are validated directly after download +
  • + + +
  • + Code highlighting in diffs +
  • + + +
  • + Switch between rendered version and source view for Markdown files +
  • + + +
+ + + +

+ Changed + + + +

+
+ + +
    + + +
  • + Stop fetching commits when it takes too long +
  • + + +
  • + Unification of source and commits become "code" +
  • + + +
+ + + +

+ Fixed + + + +

+
+ + +
    + + +
  • + Classloader leak which caused problems when restarting +
  • + + +
  • + Failing git push does not lead to an GitAPIException +
  • + + +
  • + Subversion revision 0 leads to error +
  • + + +
  • + Create mock subject to satisfy legman +
  • + + +
  • + Multiple versions of hibernate-validator caused problems when starting from plugins +
  • + + +
  • + Page title is now set correctly +
  • + + +
  • + Restart after migration +
  • + + +
+ + + +

+ + 2.0.0-rc1 + + - 2019-12-02 + + + +

+ + + + +

+ Added + + + +

+
+ + +
    + + +
  • + Namespace concept and endpoints +
  • + + +
  • + File history +
  • + + +
  • + Global permission concept +
  • + + +
  • + Completely translated into German with all the text and controls of the UI +
  • + + +
  • + Frontend provides further details on corresponding errors +
  • + + +
  • + Repository branch overview, detailed view and create branch functionality +
  • + + +
  • + Search and filter for repos, users and groups +
  • + + +
  • + Repository Permissions roles +
  • + + +
  • + Migration step framework and wizard +
  • + + +
  • + Plugin center integration +
  • + + +
  • + Plugins can be installed (even without restart), updated and uninstalled using the new plugins overview +
  • + + +
  • + Git-LFS support (with SSH authentication) +
  • + + +
  • + Anonymous access via git-clone and API access with anonymous user +
  • + + +
  • + Cache and x-requested-with header to bundle requests +
  • + + +
  • + remove public flag from repository and migrate permissions to anonymous user +
  • + + +
@@ -52014,42 +59067,412 @@ exports[`Storyshots MarkdownView Inline Xml 1`] = ` Inline xml outside of a code block is not supported
- -
-

+

- markdownErrorNotification.title -

+ Xml in Markdown +

+ +

- markdownErrorNotification.description + <project [...]>

+ + +

+ [...] +

+ + + + + +
-        
-          \`\`\`xml
-<your>
-  <xml>
-    <content/>
-  </xml>
-</your>
-\`\`\`
-        
+        
+
+            
+              
+ + + + + 1 + + + + [...] + + + +
+
+ + + + + 2 + + + + + +
+
+ + + + + 3 + + + <plugin> + + +
+
+ + + + + 4 + + + <groupId>org.apache.maven.plugins</groupId> + + +
+
+ + + + + 5 + + + <artifactId>maven-enforcer-plugin</artifactId> + + +
+
+ + + + + 6 + + + </plugin> + + +
+
+ + + + + 7 + + + <plugin> + + +
+
+ + + + + 8 + + + <groupId>org.codehaus.mojo</groupId> + + +
+
+ + + + + 9 + + + <artifactId>animal-sniffer-maven-plugin</artifactId> + + +
+
+ + + + + 10 + + + </plugin> + + +
+
+ + + + + 11 + + + </plugins> + + +
+
+ + + + + 12 + + + + + +
+
+
+
+ + + +

- markdownErrorNotification.spec - : - - - GitHub Flavored Markdown Spec - + [...]

+ +
@@ -52059,21 +59482,31 @@ exports[`Storyshots MarkdownView Links 1`] = `
-
-
-

+
+
+

Links

+ +

Show case for different style of markdown links. Please note that some of the links may not work in storybook, the story is mostly for checking if the links are rendered correct.

-

+ + +

External

+ +

External Links should be opened in a new tab:

-

+ + +

Anchor

+ +

Anchor Links should be rendered a simple a tag with an href:

-

+ + +

Protocol

+ +

Links with a protocol other than http should be rendered a simple a tag with an href e.g.:

-

+ + +

Internal

+ +

Internal links should be rendered by react-router: -

-
-

- <a name="top"> - </a> +
+
+

Markdown Test Page

+ +
+ +
-

- <a name="Headings"> - </a> + + +

Headings

-

+ + +

Heading one

+ +

Sint sit cillum pariatur eiusmod nulla pariatur ipsum. Sit laborum anim qui mollit tempor pariatur nisi minim dolor. Aliquip et adipisicing sit sit fugiat commodo id sunt. Nostrud enim ad commodo incididunt cupidatat in ullamco ullamco Lorem cupidatat velit enim et Lorem. Ut laborum cillum laboris fugiat culpa sint irure do reprehenderit culpa occaecat. Exercitation esse mollit tempor magna aliqua in occaecat aliquip veniam reprehenderit nisi dolor in laboris dolore velit.

-

+ + +

Heading two

+ +

Aute officia nulla deserunt do deserunt cillum velit magna. Officia veniam culpa anim minim dolore labore pariatur voluptate id ad est duis quis velit dolor pariatur enim. Incididunt enim excepteur do veniam consequat culpa do voluptate dolor fugiat ad adipisicing sit. Labore officia est adipisicing dolore proident eiusmod exercitation deserunt ullamco anim do occaecat velit. Elit dolor consectetur proident sunt aliquip est do tempor quis aliqua culpa aute. Duis in tempor exercitation pariatur et adipisicing mollit irure tempor ut enim esse commodo laboris proident. Do excepteur laborum anim esse aliquip eu sit id Lorem incididunt elit irure ea nulla dolor et. Nulla amet fugiat qui minim deserunt enim eu cupidatat aute officia do velit ea reprehenderit.

-

+ + +

Heading three

+ +

Voluptate cupidatat cillum elit quis ipsum eu voluptate fugiat consectetur enim. Quis ut voluptate culpa ex anim aute consectetur dolore proident voluptate exercitation eiusmod. Esse in do anim magna minim culpa sint. Adipisicing ipsum consectetur proident ullamco magna sit amet aliqua aute fugiat laborum exercitation duis et.

-

+ + +

Heading four

+ +

Commodo fugiat aliqua minim quis pariatur mollit id tempor. Non occaecat minim esse enim aliqua adipisicing nostrud duis consequat eu adipisicing qui. Minim aliquip sit excepteur ipsum consequat laborum pariatur excepteur. Veniam fugiat et amet ad elit anim laborum duis mollit occaecat et et ipsum et reprehenderit. Occaecat aliquip dolore adipisicing sint labore occaecat officia fugiat. Quis adipisicing exercitation exercitation eu amet est laboris sunt nostrud ipsum reprehenderit ullamco. Enim sint ut consectetur id anim aute voluptate exercitation mollit dolore magna magna est Lorem. Ut adipisicing adipisicing aliqua ullamco voluptate labore nisi tempor esse magna incididunt.

-
+ + +
Heading five
+ +

Veniam enim esse amet veniam deserunt laboris amet enim consequat. Minim nostrud deserunt cillum consectetur commodo eu enim nostrud ullamco occaecat excepteur. Aliquip et ut est commodo enim dolor amet sint excepteur. Amet ad laboris laborum deserunt sint sunt aliqua commodo ex duis deserunt enim est ex labore ut. Duis incididunt velit adipisicing non incididunt adipisicing adipisicing. Ad irure duis nisi tempor eu dolor fugiat magna et consequat tempor eu ex dolore. Mollit esse nisi qui culpa ut nisi ex proident culpa cupidatat cillum culpa occaecat anim. Ut officia sit ea nisi ea excepteur nostrud ipsum et nulla.

-
+ + +
Heading six
+ +

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+ +

-

- <a name="Paragraphs"> - </a> + + +

Paragraphs

+ +

Incididunt ex adipisicing ea ullamco consectetur in voluptate proident fugiat tempor deserunt reprehenderit ullamco id dolore laborum. Do laboris laboris minim incididunt qui consectetur exercitation adipisicing dolore et magna consequat magna anim sunt. Officia fugiat Lorem sunt pariatur incididunt Lorem reprehenderit proident irure. Dolore ipsum aliqua mollit ad officia fugiat sit eu aliquip cupidatat ipsum duis laborum laborum fugiat esse. Voluptate anim ex dolore deserunt ea ex eiusmod irure. Occaecat excepteur aliqua exercitation aliquip dolor esse eu eu.

+ +

Officia dolore laborum aute incididunt commodo nisi velit est est elit et dolore elit exercitation. Enim aliquip magna id ipsum aliquip consectetur ad nulla quis. Incididunt pariatur dolor consectetur cillum enim velit cupidatat laborum quis ex.

+ +

Officia irure in non voluptate adipisicing sit amet tempor duis dolore deserunt enim ut. Reprehenderit incididunt in ad anim et deserunt deserunt Lorem laborum quis. Enim aute anim labore proident laboris voluptate elit excepteur in. Ex labore nulla velit officia ullamco Lorem Lorem id do. Dolore ullamco ipsum magna dolor pariatur voluptate ipsum id occaecat ipsum. Dolore tempor quis duis commodo quis quis enim.

+ +

-

- <a name="Blockquotes"> - </a> + + +

Blockquotes

+ +

Ad nisi laborum aute cupidatat magna deserunt eu id laboris id. Aliquip nulla cupidatat sint ex Lorem mollit laborum dolor amet est ut esse aute. Nostrud ex consequat id incididunt proident ipsum minim duis aliqua ut ex et ad quis. Laborum sint esse cillum anim nulla cillum consectetur aliqua sit. Nisi excepteur cillum labore amet excepteur commodo enim occaecat consequat ipsum proident exercitation duis id in.

+ +
+ +

Ipsum et cupidatat mollit exercitation enim duis sunt irure aliqua reprehenderit mollit. Pariatur Lorem pariatur laboris do culpa do elit irure. Eiusmod amet nulla voluptate velit culpa et aliqua ad reprehenderit sit ut.

+ +
+ +

Labore ea magna Lorem consequat aliquip consectetur cillum duis dolore. Et veniam dolor qui incididunt minim amet laboris sit. Dolore ad esse commodo et dolore amet est velit ut nisi ea. Excepteur ea nulla commodo dolore anim dolore adipisicing eiusmod labore id enim esse quis mollit deserunt est. Minim ea culpa voluptate nostrud commodo proident in duis aliquip minim.

+ +
+ +

Qui est sit et reprehenderit aute est esse enim aliqua id aliquip ea anim. Pariatur sint reprehenderit mollit velit voluptate enim consectetur sint enim. Quis exercitation proident elit non id qui culpa dolore esse aliquip consequat.

+ +
+ +

Ipsum excepteur cupidatat sunt minim ad eiusmod tempor sit.

+ +
+ +

Deserunt excepteur adipisicing culpa pariatur cillum laboris ullamco nisi fugiat cillum officia. In cupidatat nulla aliquip tempor ad Lorem Lorem quis voluptate officia consectetur pariatur ex in est duis. Mollit id esse est elit exercitation voluptate nostrud nisi laborum magna dolore dolore tempor in est consectetur.

+ +
+ +

Adipisicing voluptate ipsum culpa voluptate id aute laboris labore esse fugiat veniam ullamco occaecat do ut. Tempor et esse reprehenderit veniam proident ipsum irure sit ullamco et labore ea excepteur nulla labore ut. Ex aute minim quis tempor in eu id id irure ea nostrud dolor esse.

+ +

-

- <a name="Lists"> - </a> + + +

Lists

-

+ + +

Ordered List

+ +
    + +
  1. Longan
  2. + +
  3. Lychee
  4. + +
  5. Excepteur ad cupidatat do elit laborum amet cillum reprehenderit consequat quis. Deserunt officia esse aliquip consectetur duis ut labore laborum commodo aliquip aliquip velit pariatur dolore.
  6. + +
  7. Marionberry
  8. + +
  9. Melon + +
      + +
    • Cantaloupe
    • + +
    • Honeydew
    • + +
    • Watermelon
    • + +
    + +
  10. + +
  11. Miracle fruit
  12. + +
  13. Mulberry
  14. + +
-

+ + +

Unordered List

+ +
    + +
  • Olive
  • + +
  • Orange + +
      + +
    • Blood orange
    • + +
    • Clementine
    • + +
    + +
  • + +
  • Papaya
  • + +
  • Ut aute ipsum occaecat nisi culpa Lorem id occaecat cupidatat id id magna laboris ad duis. Fugiat cillum dolore veniam nostrud proident sint consectetur eiusmod irure adipisicing.
  • + +
  • Passionfruit
  • + +
+ +

-

- <a name="Horizontal"> - </a> + + +

Horizontal rule

+ +

In dolore velit aliquip labore mollit minim tempor veniam eu veniam ad in sint aliquip mollit mollit. Ex occaecat non deserunt elit laborum sunt tempor sint consequat culpa culpa qui sit. Irure ad commodo eu voluptate mollit cillum cupidatat veniam proident amet minim reprehenderit.

+ +
+ +

In laboris eiusmod reprehenderit aliquip sit proident occaecat. Non sit labore anim elit veniam Lorem minim commodo eiusmod irure do minim nisi. Dolor amet cillum excepteur consequat sint non sint.

+ +

-

- <a name="Table"> - </a> + + +

Table

+ +

Duis sunt ut pariatur reprehenderit mollit mollit magna dolore in pariatur nulla commodo sit dolor ad fugiat. Laboris amet ea occaecat duis eu enim exercitation deserunt ea laborum occaecat reprehenderit. Et incididunt dolor commodo consequat mollit nisi proident non pariatur in et incididunt id. Eu ut et Lorem ea ex magna minim ipsum ipsum do.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table Heading 1 Table Heading 2 Center align Right align Table Heading 5
Item 1 Item 2 Item 3 Item 4 Item 5
Item 1 Item 2 Item 3 Item 4 Item 5
Item 1 Item 2 Item 3 Item 4 Item 5
Item 1 Item 2 Item 3 Item 4 Item 5
Item 1 Item 2 Item 3 Item 4 Item 5
+ +

Minim id consequat adipisicing cupidatat laborum culpa veniam non consectetur et duis pariatur reprehenderit eu ex consectetur. Sunt nisi qui eiusmod ut cillum laborum Lorem officia aliquip laboris ullamco nostrud laboris non irure laboris. Cillum dolore labore Lorem deserunt mollit voluptate esse incididunt ex dolor.

+ +

-

- <a name="Code"> - </a> + + +

Code

-

+ + +

Inline code

+ +

Ad amet irure est magna id mollit Lorem in do duis enim. Excepteur velit nisi magna ea pariatur pariatur ullamco fugiat deserunt sint non sint. Duis duis est - - code in text - - velit velit aute culpa ex quis pariatur pariatur laborum aute pariatur duis tempor sunt ad. Irure magna voluptate dolore consectetur consectetur irure esse. Anim magna - - <strong>in culpa qui officia</strong> - - dolor eiusmod esse amet aute cupidatat aliqua do id voluptate cupidatat reprehenderit amet labore deserunt. -

-

- Highlighted -

-

- Et fugiat ad nisi amet magna labore do cillum fugiat occaecat cillum Lorem proident. In sint dolor ullamco ad do adipisicing amet id excepteur Lorem aliquip sit irure veniam laborum duis cillum. Aliqua occaecat minim cillum deserunt magna sunt laboris do do irure ea nostrud consequat ut voluptate ex. -

-
-
-          
+          
-            
- - + + + - - - 1 - - - - package - - - main - - - -
-
- - - - - 2 - - - - - -
-
- - - - - 3 - - - - - - - import - - - - - - ( - - - - - - -
-
- - - - - 4 - - - - - - - "fmt" - - - - - - -
-
- - - - - 5 - - - - - - - "net/http" - - - - - - -
-
- - - - - 6 - - - - - - - ) - - - - - - -
-
- - - - - 7 - - - - - -
-
- - - - - 8 - - - - - - - func - - - - - - handler - - - ( - - - w http - - - . - - - ResponseWriter - - - , - - - r - - - * - - - http - - - . - - - Request - - - ) - - - - - - { - - - - - - -
-
- - - - - 9 - - - - fmt - - - . - - - Fprintf - - - ( - - - w - - - , - - - - - - "Hi there, I love %s!" - - - , - - - r - - - . - - - URL - - - . - - - Path - - - [ - - 1 - - : - - - ] - - - ) - - - + + 1 + + + code in text + - -
-
+ +
+
+ velit velit aute culpa ex quis pariatur pariatur laborum aute pariatur duis tempor sunt ad. Irure magna voluptate dolore consectetur consectetur irure esse. Anim magna +
+
+            
-              
-                
-              
-              
-                10
-              
-              
                 
-                  
+                  
                 
-                
-                  }
-                
-                
-                  
-
-                
-              
-            
-
- - - - - 11 - - - - - -
-
- - - - - 12 - - - - - - - func - - - - - - main - - - ( - - - ) - - - - - - { - - - - - - -
-
- - - - - 13 - - - - http - - - . - - - HandleFunc - - - ( - - - "/" - - - , - - - handler - - - ) - - - - - - -
-
- - - - - 14 - - - - http - - - . - - - ListenAndServe - - - ( - - - ":8080" - - - , - - - - - - nil - - - ) - - - - - - -
-
- - - - - 15 - - + 1 + + + + 1 + + + <strong>in culpa qui officia</strong> + + +
+
+ +
+ dolor eiusmod esse amet aute cupidatat aliqua do id voluptate cupidatat reprehenderit amet labore deserunt. +

+ + +

+ Highlighted +

+ + +

+ Et fugiat ad nisi amet magna labore do cillum fugiat occaecat cillum Lorem proident. In sint dolor ullamco ad do adipisicing amet id excepteur Lorem aliquip sit irure veniam laborum duis cillum. Aliqua occaecat minim cillum deserunt magna sunt laboris do do irure ea nostrud consequat ut voluptate ex. +

+ + +
+        
+
+            
+              
+ + + + + 1 + + + + package + + + main + + + +
+
+ + + + + 2 + + + + + +
+
+ + + + + 3 + + + + + + + import + + + + + + ( + + + + + + +
+
+ + + + + 4 + + + + + + + "fmt" + + + + + + +
+
+ + + + + 5 + + + + + + + "net/http" + + + + + + +
+
+ + + + + 6 + + + + + + + ) + + + + + + +
+
+ + + + + 7 + + + + + +
+
+ + + + + 8 + + + + + + + func + + + + + + handler + + + ( + + + w http + + + . + + + ResponseWriter + + + , + + + r + + + * + + + http + + + . + + + Request + + + ) + + + + + + { + + + + + + +
+
+ + + + + 9 + + + + fmt + + + . + + + Fprintf + + + ( + + + w + + + , + + + + + + "Hi there, I love %s!" + + + , + + + r + + + . + + + URL + + + . + + + Path + + + [ + + + 1 + + + : + + + ] + + + ) + + + + + + +
+
+ + + + + 10 + + + + + + + } + + + + + + +
+
+ + + + + 11 + + + + + +
+
+ + + + + 12 + + + + + + + func + + + + + + main + + + ( + + + ) + + + + + + { + + + + + + +
+
+ + + + + 13 + + + + http + + + . + + + HandleFunc + + + ( + + + "/" + + + , + + + handler + + + ) + + + + + + +
+
+ + + + + 14 + + + + http + + + . + + + ListenAndServe + + + ( + + + ":8080" + + + , + + + + + + nil + + + ) + + + + + + +
+
+ + + + 15 - + + + + + } + + + + + + +
+
+ + - } + 16 - -
-
-
-
+ + + + +
+ + +

+ + +

Ex amet id ex aliquip id do laborum excepteur exercitation elit sint commodo occaecat nostrud est. Nostrud pariatur esse veniam laborum non sint magna sit laboris minim in id. Aliqua pariatur pariatur excepteur adipisicing irure culpa consequat commodo et ex id ad.

+ +

-

- <a name="Inline"> - </a> + + +

Inline elements

+ +

Sint ea anim ipsum ad commodo cupidatat do @@ -53889,20 +61857,120 @@ Deserunt officia esse aliquip consectetur duis ut labore laborum commodo aliquip . Commodo non ea cupidatat magna deserunt dolore ipsum velit nulla elit veniam nulla eiusmod proident officia.

+ +

Super wide

+ +

Proident sit veniam in est proident officia adipisicing ea tempor cillum non cillum velit deserunt. Voluptate laborum incididunt sit consectetur Lorem irure incididunt voluptate nostrud. Commodo ut eiusmod tempor cupidatat esse enim minim ex anim consequat. Mollit sint culpa qui laboris quis consectetur ad sint esse. Amet anim anim minim ullamco et duis non irure. Sit tempor adipisicing ea laboris - - culpa ex duis sint - +

+
+            
+              
+ + + + + 1 + + + + 1 + + + culpa ex duis sint + + +
+
+
+
anim aute reprehenderit id eu ea. Aute
Lorem minim adipisicing nostrud mollit ad ut voluptate do nulla esse occaecat aliqua sint anim.

+ +

Not so big

+ +

Incididunt in culpa cupidatat mollit cillum qui proident sit. In cillum aliquip incididunt voluptate magna amet cupidatat cillum pariatur sint aliqua est @@ -53935,6 +62007,8 @@ Deserunt officia esse aliquip consectetur duis ut labore laborum commodo aliquip . Do deserunt magna mollit Lorem commodo ipsum do cupidatat mollit enim ut elit veniam ea voluptate.

+ +

+ +

Reprehenderit non eu quis in ad elit esse qui aute id -

-
-

+
+
+

XSS should prevented

-

- You should not see an alert onload. -

-

- If you hover over <b onmouseover=alert("onmouseover alert")>me - nothing should happen. + You should not see an alert onload.

+ + +
+ + + + +

+ If you hover over <b onmouseover=alert("onmouseover alert")>me nothing should happen. +

+ +

Not every html @@ -53994,6 +62076,12 @@ exports[`Storyshots MarkdownView XSS Prevention 1`] = ` be removed.

+ + + + + +

@@ -54003,56 +62091,37 @@ exports[`Storyshots MarkdownView Xml Code Block 1`] = `
-
-
-

+
+
+

Xml Code Block in Markdown

-
-
-          
+        
+
-            
- - - - - 1 - - - - < - - - project - - - - - - [...] - - - > - - - - - - -
-
- - - - - 2 - - - - - -
-
- - - - - 3 - - - [...] - - -
-
- - - - - 4 - - - - - -
-
- - - - - 5 - - - - - - - < - - - build - - - > - - - - - - -
-
- - - - - 6 - - - - - - - < - - - plugins - - - > - - - - - - -
-
- - - - - 7 - - - - - -
-
- - - - - 8 - - - [...] - - -
-
- - - - - 9 - - - - - -
-
- - - - - 10 - - - - - - - < - - - plugin - - - > - - - - - - -
-
- - - - - 11 - - - - - - - < - - - groupId - - - > - - - org.apache.maven.plugins - - - </ - - - groupId - - - > - - - - - - -
-
- - - - - 12 - - - - - - - < - - - artifactId - - - > - - maven-enforcer-plugin + - - </ - - - artifactId - - - > - - - - - - -
-
- - - - - 13 - - - - - - - </ - - - plugin - - - > - - - - - - -
-
- - - - - 14 - - - - - - - < - - - plugin - - - > - - - - - - -
-
- - - - - 15 - - - - - - - < - - - groupId - - - > - - - org.codehaus.mojo - - - </ - - - groupId - - - > - - - - - - -
-
- - - - - 16 - - - - - - - < - - - artifactId - - - > - - - animal-sniffer-maven-plugin - - - </ - - - artifactId - - - > - - - - - - -
-
- - - - - 17 - - - - - - - </ - - - plugin - - - > - - - - - - -
-
- - - - - 18 - - - - - - - </ - - - plugins - - - > - - - - - - -
-
- - - - - 19 - - - - - - - </ - - - build - - - > - - - - - - -
-
- - - - - 20 - - - - - -
-
- - - - - 21 - - - [...] - - -
-
- - - - - 22 - - - - - -
-
- - - - - 23 - - + 1 + + + + < + + + project + + + + + + [...] + + + > + + + + + + +
+
+ + + + + 2 + + + + + +
+
+ + + + + 3 + + + [...] + + +
+
+ + + + + 4 + + + + + +
+
+ + + + + 5 + + + + + + + < + + + build + + + > + + + + + + +
+
+ + + + + 6 + + + + + + + < + + + plugins + + + > + + + + + + +
+
+ + + + + 7 + + + + + +
+
+ + + + + 8 + + + [...] + + +
+
+ + + + + 9 + + + + + +
+
+ + + + + 10 + + + + + + + < + + + plugin + + + > + + + + + + +
+
+ + + + + 11 + + + + + + + < + + + groupId + + + > + + + org.apache.maven.plugins + + + </ + + + groupId + + + > + + + + + + +
+
+ + + + + 12 + + + + + + + < + + + artifactId + + + > + + + maven-enforcer-plugin + + + </ + + + artifactId + + + > + + + + + + +
+
+ + + + + 13 + + + + + + + </ + + + plugin + + + > + + + + + + +
+
+ + + + + 14 + + + + + + + < + + + plugin + + + > + + + + + + +
+
+ + + + + 15 + + + + + + + < + + + groupId + + + > + + + org.codehaus.mojo + + + </ + + + groupId + + + > + + + + + + +
+
+ + + + + 16 + + + + + + + < + + + artifactId + + + > + + + animal-sniffer-maven-plugin + + + </ + + + artifactId + + + > + + + + + + +
+
+ + + + + 17 + + + + + + + </ + + + plugin + + + > + + + + + + +
+
+ + + + + 18 + + + + + + + </ + + + plugins + + + > + + + + + + +
+
+ + + + + 19 + + + + + + + </ + + + build + + + > + + + + + + +
+
+ + + + + 20 + + + + + +
+
+ + + + + 21 + + + [...] + + +
+
+ + + + + 22 + + + + + +
+
+ + + + 23 + + + + + + </ + + + project + + + > + + + + + + +
+
+ + + + + 24 + + - - </ - - - project - - - > - - -
-
-
-
+
+ + +
+

@@ -59277,7 +67388,7 @@ exports[`Storyshots SyntaxHighlighter Markdown 1`] = ` } } > - <a name="top"></a>Markdown Test Page + <a name="top">Markdown Test Page</a> - <a name="Headings"></a>Headings + <a name="Headings">Headings</a> - <a name="Paragraphs"></a>Paragraphs + <a name="Paragraphs">Paragraphs</a> - <a name="Blockquotes"></a>Blockquotes + <a name="Blockquotes">Blockquotes</a> - <a name="Lists"></a>Lists + <a name="Lists">Lists</a> - <a name="Horizontal"></a>Horizontal rule + <a name="Horizontal">Horizontal rule</a> - <a name="Table"></a>Table + <a name="Table">Table</a> - <a name="Code"></a>Code + <a name="Code">Code</a> - <a name="Inline"></a>Inline elements + <a name="Inline">Inline elements</a> = ({ children, level, permalink }) => { +const MarkdownHeadingRenderer: FC = ({ children, level, permalink, id }) => { const [copying, setCopying] = useState(false); const [t] = useTranslation("repos"); const location = useLocation(); const history = useHistory(); const reactChildren = React.Children.toArray(children); const heading = reactChildren.reduce(flatten, ""); - const anchorId = headingToAnchorId(heading); + const anchorId = id || headingToAnchorId(heading); const copyPermalink = (event: React.MouseEvent) => { event.preventDefault(); setCopying(true); @@ -93,7 +94,7 @@ const MarkdownHeadingRenderer: FC = ({ children, level, permalink }) => { ); - const headingElement = React.createElement("h" + level, {}, [...reactChildren, CopyButton]); + const headingElement = React.createElement("h" + level, {id: anchorId}, [...reactChildren, CopyButton]); const href = urls.withContextPath(location.pathname + "#" + anchorId); const permalinkHref = window.location.protocol + @@ -102,7 +103,7 @@ const MarkdownHeadingRenderer: FC = ({ children, level, permalink }) => { urls.withContextPath((permalink || location.pathname) + "#" + anchorId); return ( - + {headingElement} ); diff --git a/scm-ui/ui-components/src/markdown/MarkdownView.stories.tsx b/scm-ui/ui-components/src/markdown/MarkdownView.stories.tsx index 9517e9d452..fbb39cf966 100644 --- a/scm-ui/ui-components/src/markdown/MarkdownView.stories.tsx +++ b/scm-ui/ui-components/src/markdown/MarkdownView.stories.tsx @@ -34,6 +34,7 @@ import MarkdownInlineXml from "../__resources__/markdown-inline-xml.md"; import MarkdownLinks from "../__resources__/markdown-links.md"; import MarkdownCommitLinks from "../__resources__/markdown-commit-link.md"; import MarkdownXss from "../__resources__/markdown-xss.md"; +import MarkdownChangelog from "../__resources__/markdown-changelog.md"; import Title from "../layout/Title"; import { Subtitle } from "../layout"; import { MemoryRouter } from "react-router-dom"; @@ -60,7 +61,7 @@ storiesOf("MarkdownView", module) .add("Links", () => ) .add("Header Anchor Links", () => ( { if (contentRef && hash) { // we query only child elements, to avoid strange scrolling with multiple // markdown elements on one page. - const element = contentRef.querySelector(hash); + const elementId = decodeURIComponent(hash.substring(1) /* remove # */); + const element = contentRef.querySelector(`[id="${elementId}"]`); if (element && element.scrollIntoView) { element.scrollIntoView(); } @@ -133,42 +144,65 @@ class MarkdownView extends React.Component { } = this.props; const rendererFactory = binder.getExtension("markdown-renderer-factory"); - let rendererList = renderers; + let remarkRendererList = renderers; if (rendererFactory) { - rendererList = rendererFactory(renderContext); + remarkRendererList = rendererFactory(renderContext); } - if (!rendererList) { - rendererList = {}; + if (!remarkRendererList) { + remarkRendererList = {}; } - if (enableAnchorHeadings && permalink && !rendererList.heading) { - rendererList.heading = createMarkdownHeadingRenderer(permalink); + if (enableAnchorHeadings && permalink && !remarkRendererList.heading) { + remarkRendererList.heading = createMarkdownHeadingRenderer(permalink); } - if (basePath && !rendererList.link) { - rendererList.link = createMarkdownLinkRenderer(basePath); + if (basePath && !remarkRendererList.link) { + remarkRendererList.link = createMarkdownLinkRenderer(basePath); } - if (!rendererList.code) { - rendererList.code = MarkdownCodeRenderer; + if (!remarkRendererList.code) { + remarkRendererList.code = MarkdownCodeRenderer; } - const plugins = [...mdastPlugins, createTransformer(t)].map(createMdastPlugin); + const remarkPlugins = [...mdastPlugins, createChangesetShortlinkParser(t), createValuelessTextAdapter()].map( + createMdastPlugin + ); - const baseProps = { - className: "content is-word-break", - renderers: rendererList, - plugins: [gfm], - astPlugins: plugins, - children: content - }; + let processor = unified() + .use(parseMarkdown) + .use(gfm) + .use(remarkPlugins) + .use(remark2rehype, { allowDangerousHtml: true }); + + if (!skipHtml) { + processor = processor.use(raw); + } + + processor = processor + .use(slug) + .use( + sanitize, + merge(gh, { + attributes: { + code: ["className"] // Allow className for code elements, this is necessary to extract the code language + }, + clobberPrefix: "" // Do not prefix user-provided ids and class names + }) + ) + .use(rehype2react, { + createElement: React.createElement, + passNode: true, + components: createComponentList(remarkRendererList, { permalink }) + }); + + const renderedMarkdown: any = processor.processSync(content).result; return ( -
this.setState({ contentRef: el })}> - {skipHtml ? : } +
this.setState({ contentRef: el })} className="content is-word-break"> + {renderedMarkdown}
); diff --git a/scm-ui/ui-components/src/markdown/createComponentList.ts b/scm-ui/ui-components/src/markdown/createComponentList.ts new file mode 100644 index 0000000000..2e9821d4d8 --- /dev/null +++ b/scm-ui/ui-components/src/markdown/createComponentList.ts @@ -0,0 +1,101 @@ +import { + createRemark2RehypeCodeRendererAdapter, + createRemark2RehypeHeadingRendererAdapterFactory, + createRemark2RehypeLinkRendererAdapter +} from "./remarkToRehypeRendererAdapters"; + +export type CreateComponentListOptions = { + permalink?: string; +}; + +export const createComponentList = ( + remarkRendererList: Record, + { permalink }: CreateComponentListOptions +) => { + const components: Record = {}; + + if (remarkRendererList.code) { + components.code = createRemark2RehypeCodeRendererAdapter(remarkRendererList.code); + } + + if (remarkRendererList.link) { + components.a = createRemark2RehypeLinkRendererAdapter(remarkRendererList.link); + } + + if (remarkRendererList.heading) { + const createHeadingRendererAdapter = createRemark2RehypeHeadingRendererAdapterFactory( + remarkRendererList.heading, + permalink + ); + components.h1 = createHeadingRendererAdapter(1); + components.h2 = createHeadingRendererAdapter(2); + components.h3 = createHeadingRendererAdapter(3); + components.h4 = createHeadingRendererAdapter(4); + components.h5 = createHeadingRendererAdapter(5); + components.h6 = createHeadingRendererAdapter(6); + } + + if (remarkRendererList.break) { + components.br = remarkRendererList.break; + } + + if (remarkRendererList.delete) { + components.del = remarkRendererList.delete; + } + + if (remarkRendererList.emphasis) { + components.em = remarkRendererList.emphasis; + } + + if (remarkRendererList.blockquote) { + components.blockquote = remarkRendererList.blockquote; + } + + if (remarkRendererList.image) { + components.img = remarkRendererList.image; + } + + if (remarkRendererList.list) { + components.ol = remarkRendererList.list; + components.ul = remarkRendererList.list; + } + + if (remarkRendererList.listItem) { + components.li = remarkRendererList.listItem; + } + + if (remarkRendererList.paragraph) { + components.p = remarkRendererList.paragraph; + } + + if (remarkRendererList.strong) { + components.strong = remarkRendererList.strong; + } + + if (remarkRendererList.table) { + components.table = remarkRendererList.table; + } + + if (remarkRendererList.tableHead) { + components.thead = remarkRendererList.tableHead; + } + + if (remarkRendererList.tableBody) { + components.tbody = remarkRendererList.tableBody; + } + + if (remarkRendererList.tableRow) { + components.tr = remarkRendererList.tableRow; + } + + if (remarkRendererList.tableCell) { + components.td = remarkRendererList.tableCell; + components.th = remarkRendererList.tableCell; + } + + if (remarkRendererList.thematicBreak) { + components.hr = remarkRendererList.thematicBreak; + } + + return components; +}; diff --git a/scm-ui/ui-components/src/markdown/createMdastPlugin.ts b/scm-ui/ui-components/src/markdown/createMdastPlugin.ts index f072a5ba7d..ffb1e56d33 100644 --- a/scm-ui/ui-components/src/markdown/createMdastPlugin.ts +++ b/scm-ui/ui-components/src/markdown/createMdastPlugin.ts @@ -2,11 +2,18 @@ import { AstPlugin } from "./PluginApi"; // @ts-ignore No types available import visit from "unist-util-visit"; +/** + * Transforms the abstraction layer into an actual remark plugin to be used with unified. + * + * @see https://unifiedjs.com/learn/guide/create-a-plugin/ + */ export default function createMdastPlugin(plugin: AstPlugin): any { - return (tree: any) => { - plugin({ - visit: (type, visitor) => visit(tree, type, visitor) - }); - return tree; + return function attach() { + return function transform(tree: any) { + plugin({ + visit: (type, visitor) => visit(tree, type, visitor) + }); + return tree; + }; }; } diff --git a/scm-ui/ui-components/src/markdown/remarkToRehypeRendererAdapters.ts b/scm-ui/ui-components/src/markdown/remarkToRehypeRendererAdapters.ts new file mode 100644 index 0000000000..e655e8f2dc --- /dev/null +++ b/scm-ui/ui-components/src/markdown/remarkToRehypeRendererAdapters.ts @@ -0,0 +1,34 @@ +import React from "react"; + +export const createRemark2RehypeCodeRendererAdapter = (remarkRenderer: any) => { + return ({ node, children }: any) => { + children = children || []; + const renderProps = { + value: children[0], + language: Array.isArray(node.properties.className) ? node.properties.className[0].split("language-")[1] : "" + }; + return React.createElement(remarkRenderer, renderProps, ...children); + }; +}; + +export const createRemark2RehypeLinkRendererAdapter = (remarkRenderer: any) => { + return ({ node, children }: any) => { + const renderProps = { + href: node.properties.href || "" + }; + children = children || []; + return React.createElement(remarkRenderer, renderProps, ...children); + }; +}; + +export const createRemark2RehypeHeadingRendererAdapterFactory = (remarkRenderer: any, permalink?: string) => { + return (level: number) => ({ node, children }: any) => { + const renderProps = { + id: node.properties.id, + level, + permalink + }; + children = children || []; + return React.createElement(remarkRenderer, renderProps, ...children); + }; +}; diff --git a/scm-ui/ui-components/src/markdown/remarkValuelessTextAdapter.ts b/scm-ui/ui-components/src/markdown/remarkValuelessTextAdapter.ts new file mode 100644 index 0000000000..26fe29cd06 --- /dev/null +++ b/scm-ui/ui-components/src/markdown/remarkValuelessTextAdapter.ts @@ -0,0 +1,41 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import { AstPlugin } from "./PluginApi"; +import { Node, Parent } from "unist"; + +/** + * Some existing remark plugins (e.g. changesetShortLinkParser or the plugin for issue tracker links) create + * text nodes without values but with children. This does not get parsed properly by remark2rehype. + * This remark-plugin transforms all of these invalid text nodes to valid paragraphs. + */ +export const createTransformer = (): AstPlugin => { + return ({ visit }) => { + visit("text", (node: Node, index: number, parent?: Parent) => { + if (node.value === undefined && Array.isArray(node.children) && node.children.length > 0) { + node.type = "paragraph"; + } + }); + }; +}; diff --git a/yarn.lock b/yarn.lock index 832b3d0f53..64e8f5726d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4223,6 +4223,13 @@ npmlog "^4.1.2" write-file-atomic "^2.3.0" +"@mapbox/hast-util-table-cell-style@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@mapbox/hast-util-table-cell-style/-/hast-util-table-cell-style-0.1.3.tgz#5b7166ae01297d72216932b245e4b2f0b642dca6" + integrity sha512-QsEsh5YaDvHoMQ2YHdvZy2iDnU3GgKVBTcHf6cILyoWDZtPSdlG444pL/ioPYO/GpXSfODBb9sefEetfC4v9oA== + dependencies: + unist-util-visit "^1.3.0" + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -5441,7 +5448,7 @@ dependencies: "@types/react" "*" -"@types/mdast@^3.0.0", "@types/mdast@^3.0.3": +"@types/mdast@^3.0.0": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== @@ -5498,6 +5505,11 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/parse5@^5.0.0": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" + integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== + "@types/prettier@^1.18.0": version "1.19.1" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" @@ -9795,15 +9807,6 @@ dom-serializer@0: domelementtype "^2.0.1" entities "^2.0.0" -dom-serializer@^1.0.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz#d845a1565d7c041a95e5dab62184ab41e3a519be" - integrity sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - entities "^2.0.0" - dom-serializer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" @@ -9832,11 +9835,6 @@ domelementtype@^2.0.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971" integrity sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA== -domelementtype@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== - domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" @@ -9858,20 +9856,6 @@ domhandler@^2.3.0: dependencies: domelementtype "1" -domhandler@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" - integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== - dependencies: - domelementtype "^2.0.1" - -domhandler@^4.0.0, domhandler@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.1.0.tgz#c1d8d494d5ec6db22de99e46a149c2a4d23ddd43" - integrity sha512-/6/kmsGlMY4Tup/nGVutdrK9yQi4YjWVcVeoQmixpzjOUK1U7pQkvAPHBJeUxOgxF0J8f8lwCJSlCfD0V4CMGQ== - dependencies: - domelementtype "^2.2.0" - domutils@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" @@ -9888,15 +9872,6 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" -domutils@^2.4.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.5.2.tgz#37ef8ba087dff1a17175e7092e8a042e4b050e6c" - integrity sha512-MHTthCb1zj8f1GVfRpeZUbohQf/HdBos0oX5gZcQFepOZPLLRyj6Wn7XS7EMnY7CVpwv8863u2vyE83Hfu28HQ== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.1.0" - dot-case@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa" @@ -10058,6 +10033,11 @@ emittery@^0.7.1: resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.1.tgz#c02375a927a40948c0345cc903072597f5270451" integrity sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ== +"emoji-regex@>=6.0.0 <=6.1.1": + version "6.1.1" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" + integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= + emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -11706,6 +11686,13 @@ gitdiff-parser@^0.1.2, "gitdiff-parser@https://github.com/scm-manager/gitdiff-pa version "0.2.2" resolved "https://github.com/scm-manager/gitdiff-parser#420d6cfa17a6a8f9bf1a517a2c629dcb332dbe13" +github-slugger@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" + integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== + dependencies: + emoji-regex ">=6.0.0 <=6.1.1" + glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" @@ -12049,11 +12036,86 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hast-to-hyperscript@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" + integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== + dependencies: + "@types/unist" "^2.0.3" + comma-separated-tokens "^1.0.0" + property-information "^5.3.0" + space-separated-tokens "^1.0.0" + style-to-object "^0.3.0" + unist-util-is "^4.0.0" + web-namespaces "^1.0.0" + +hast-util-from-parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a" + integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== + dependencies: + "@types/parse5" "^5.0.0" + hastscript "^6.0.0" + property-information "^5.0.0" + vfile "^4.0.0" + vfile-location "^3.2.0" + web-namespaces "^1.0.0" + +hast-util-has-property@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz#9f137565fad6082524b382c1e7d7d33ca5059f36" + integrity sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg== + +hast-util-heading-rank@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hast-util-heading-rank/-/hast-util-heading-rank-1.0.1.tgz#28dfd8b0724cfb0da48308e2a794b1d9f24fd80d" + integrity sha512-P6Hq7RCky9syMevlrN90QWpqWDXCxwIVOfQR2rK6P4GpY4bqjKEuCzoWSRORZ7vz+VgRpLnXimh+mkwvVFjbyQ== + hast-util-parse-selector@^2.0.0: version "2.2.4" resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz#60c99d0b519e12ab4ed32e58f150ec3f61ed1974" integrity sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA== +hast-util-raw@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-6.1.0.tgz#e16a3c2642f65cc7c480c165400a40d604ab75d0" + integrity sha512-5FoZLDHBpka20OlZZ4I/+RBw5piVQ8iI1doEvffQhx5CbCyTtP8UCq8Tw6NmTAMtXgsQxmhW7Ly8OdFre5/YMQ== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-parse5 "^6.0.0" + hast-util-to-parse5 "^6.0.0" + html-void-elements "^1.0.0" + parse5 "^6.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + vfile "^4.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hast-util-sanitize@^3.0.0, hast-util-sanitize@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/hast-util-sanitize/-/hast-util-sanitize-3.0.2.tgz#b0b783220af528ba8fe6999f092d138908678520" + integrity sha512-+2I0x2ZCAyiZOO/sb4yNLFmdwPBnyJ4PBkVTUMKMqBwYNA+lXSgOmoRXlJFazoyid9QPogRRKgKhVEodv181sA== + dependencies: + xtend "^4.0.0" + +hast-util-to-parse5@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" + integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== + dependencies: + hast-to-hyperscript "^9.0.0" + property-information "^5.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hast-util-to-string@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz#9b24c114866bdb9478927d7e9c36a485ac728378" + integrity sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w== + hastscript@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" @@ -12206,15 +12268,10 @@ html-parse-stringify2@2.0.1: dependencies: void-elements "^2.0.1" -html-to-react@^1.3.4: - version "1.4.5" - resolved "https://registry.yarnpkg.com/html-to-react/-/html-to-react-1.4.5.tgz#59091c11021d1ef315ef738460abb6a4a41fe1ce" - integrity sha512-KONZUDFPg5OodWaQu2ymfkDmU0JA7zB1iPfvyHehTmMUZnk0DS7/TyCMTzsLH6b4BvxX15g88qZCXFhJWktsmA== - dependencies: - domhandler "^3.3.0" - htmlparser2 "^5.0" - lodash.camelcase "^4.3.0" - ramda "^0.27.1" +html-void-elements@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" + integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== html-webpack-plugin@^4.2.1: version "4.5.0" @@ -12248,16 +12305,6 @@ htmlparser2@^3.3.0, htmlparser2@^3.9.1: inherits "^2.0.1" readable-stream "^3.1.1" -htmlparser2@^5.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7" - integrity sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ== - dependencies: - domelementtype "^2.0.1" - domhandler "^3.3.0" - domutils "^2.4.2" - entities "^2.0.0" - http-assert@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" @@ -12628,6 +12675,11 @@ inline-source-map@~0.6.0: dependencies: source-map "~0.5.3" +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + inquirer@7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.4.tgz#99af5bde47153abca23f5c7fc30db247f39da703" @@ -14348,9 +14400,9 @@ js-yaml@^3.6.1, js-yaml@^3.9.0: esprima "^4.0.0" js-yaml@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" - integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" @@ -15022,11 +15074,6 @@ lodash._reinterpolate@^3.0.0: resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - lodash.clonedeep@4.5.0, lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -15360,18 +15407,18 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -mdast-add-list-metadata@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz#95e73640ce2fc1fa2dcb7ec443d09e2bfe7db4cf" - integrity sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA== - dependencies: - unist-util-visit-parents "1.1.2" - mdast-comment-marker@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-1.1.2.tgz#5ad2e42cfcc41b92a10c1421a98c288d7b447a6d" integrity sha512-vTFXtmbbF3rgnTh3Zl3irso4LtvwUq/jaDvT2D1JqTGAwaipcS7RpTxzi6KjoRqI9n2yuAhzLDAC8xVTF3XYVQ== +mdast-util-definitions@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" + integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== + dependencies: + unist-util-visit "^2.0.0" + mdast-util-find-and-replace@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz#b7db1e873f96f66588c321f1363069abf607d1b5" @@ -15446,6 +15493,20 @@ mdast-util-heading-style@^1.0.2: resolved "https://registry.yarnpkg.com/mdast-util-heading-style/-/mdast-util-heading-style-1.0.6.tgz#6410418926fd5673d40f519406b35d17da10e3c5" integrity sha512-8ZuuegRqS0KESgjAGW8zTx4tJ3VNIiIaGFNEzFpRSAQBavVc7AvOo9I4g3crcZBfYisHs4seYh0rAVimO6HyOw== +mdast-util-to-hast@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.2.0.tgz#61875526a017d8857b71abc9333942700b2d3604" + integrity sha512-JoPBfJ3gBnHZ18icCwHR50orC9kNH81tiR1gs01D8Q5YpV6adHNO9nKNuFBCJQ941/32PT1a63UF/DitmS3amQ== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + mdast-util-definitions "^4.0.0" + mdurl "^1.0.0" + unist-builder "^2.0.0" + unist-util-generated "^1.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + mdast-util-to-markdown@^0.6.0, mdast-util-to-markdown@^0.6.1, mdast-util-to-markdown@~0.6.0: version "0.6.5" resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe" @@ -15478,6 +15539,11 @@ mdn-data@2.0.6: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== +mdurl@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -16978,6 +17044,11 @@ parse5@^3.0.1: dependencies: "@types/node" "*" +parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + parseurl@^1.3.2, parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -17813,6 +17884,13 @@ property-information@^5.0.0: dependencies: xtend "^4.0.0" +property-information@^5.3.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" + integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== + dependencies: + xtend "^4.0.0" + proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" @@ -17984,11 +18062,6 @@ ramda@^0.21.0: resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" integrity sha1-oAGr7bP/YQd9T/HVd9RN536NCjU= -ramda@^0.27.1: - version "0.27.1" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9" - integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw== - ramda@~0.26.1: version "0.26.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" @@ -18235,7 +18308,7 @@ react-inspector@^5.0.1: is-dom "^1.0.0" prop-types "^15.0.0" -react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6: +react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -18250,22 +18323,6 @@ react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== -react-markdown@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-5.0.3.tgz#41040ea7a9324b564b328fb81dd6c04f2a5373ac" - integrity sha512-jDWOc1AvWn0WahpjW6NK64mtx6cwjM4iSsLHJPNBqoAgGOVoIdJMqaKX4++plhOtdd4JksdqzlDibgPx6B/M2w== - dependencies: - "@types/mdast" "^3.0.3" - "@types/unist" "^2.0.3" - html-to-react "^1.3.4" - mdast-add-list-metadata "1.0.1" - prop-types "^15.7.2" - react-is "^16.8.6" - remark-parse "^9.0.0" - unified "^9.0.0" - unist-util-visit "^2.0.0" - xtend "^4.0.1" - react-popper-tooltip@^2.8.3: version "2.11.1" resolved "https://registry.yarnpkg.com/react-popper-tooltip/-/react-popper-tooltip-2.11.1.tgz#3c4bdfd8bc10d1c2b9a162e859bab8958f5b2644" @@ -18824,6 +18881,39 @@ regjsparser@^0.6.4: dependencies: jsesc "~0.5.0" +rehype-raw@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-5.1.0.tgz#66d5e8d7188ada2d31bc137bc19a1000cf2c6b7e" + integrity sha512-MDvHAb/5mUnif2R+0IPCYJU8WjHa9UzGtM/F4AVy5GixPlDZ1z3HacYy4xojDU+uBa+0X/3PIfyQI26/2ljJNA== + dependencies: + hast-util-raw "^6.1.0" + +rehype-react@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/rehype-react/-/rehype-react-6.2.0.tgz#705a5b3055548848ff8a7778c978fd368b0d4425" + integrity sha512-XpR3p8ejdJ5CSEKqAfASIrkD+KaHLy0JOqXu9zM32tvkr1cUeM7AeidF6Q8eQ/wtMvcJb+h/L4QRwg1eFwBggQ== + dependencies: + "@mapbox/hast-util-table-cell-style" "^0.1.3" + hast-to-hyperscript "^9.0.0" + +rehype-sanitize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/rehype-sanitize/-/rehype-sanitize-4.0.0.tgz#b5241cf66bcedc49cd4e924a5f7a252f00a151ad" + integrity sha512-ZCr/iQRr4JeqPjun5i9CHHILVY7i45VnLu1CkkibDrSyFQ7dTLSvw8OIQpHhS4RSh9h/9GidxFw1bRb0LOxIag== + dependencies: + hast-util-sanitize "^3.0.0" + +rehype-slug@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/rehype-slug/-/rehype-slug-4.0.1.tgz#313274501cffa997bd52dd57bf2da5851959747a" + integrity sha512-KIlJALf9WfHFF21icwTd2yI2IP+RQRweaxH9ChVGQwRYy36+hiomG4ZSe0yQRyCt+D/vE39LbAcOI/h4O4GPhA== + dependencies: + github-slugger "^1.1.1" + hast-util-has-property "^1.0.0" + hast-util-heading-rank "^1.0.0" + hast-util-to-string "^1.0.0" + unist-util-visit "^2.0.0" + relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -19051,6 +19141,13 @@ remark-preset-lint-recommended@^5.0.0: remark-lint-no-unused-definitions "^2.0.0" remark-lint-ordered-list-marker-style "^2.0.0" +remark-rehype@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-8.1.0.tgz#610509a043484c1e697437fa5eb3fd992617c945" + integrity sha512-EbCu9kHgAxKmW1yEYjx3QafMyGY3q8noUbNUI5xyKbaFP89wbhDrKxyIQNukNYthzjNHZu6J7hwFg7hRm1svYA== + dependencies: + mdast-util-to-hast "^10.2.0" + remark-stringify@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz#576d06e910548b0a7191a71f27b33f1218862894" @@ -20509,6 +20606,13 @@ style-loader@^1.0.0, style-loader@^1.2.1: loader-utils "^2.0.0" schema-utils "^2.6.6" +style-to-object@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== + dependencies: + inline-style-parser "0.1.1" + styled-components@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.2.0.tgz#6dcb5aa8a629c84b8d5ab34b7167e3e0c6f7ed74" @@ -21357,7 +21461,7 @@ unified-message-control@^3.0.0: unist-util-visit "^2.0.0" vfile-location "^3.0.0" -unified@^9.0.0, unified@^9.1.0: +unified@^9.1.0, unified@^9.2.1: version "9.2.1" resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.1.tgz#ae18d5674c114021bfdbdf73865ca60f410215a3" integrity sha512-juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA== @@ -21403,6 +21507,11 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +unist-builder@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" + integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== + unist-util-generated@^1.0.0, unist-util-generated@^1.1.0, unist-util-generated@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" @@ -21415,6 +21524,11 @@ unist-util-inspect@^5.0.0: dependencies: is-empty "^1.0.0" +unist-util-is@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" + integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== + unist-util-is@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.4.tgz#3e9e8de6af2eb0039a59f50c9b3e99698a924f50" @@ -21432,10 +21546,12 @@ unist-util-stringify-position@^2.0.0: dependencies: "@types/unist" "^2.0.2" -unist-util-visit-parents@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz#f6e3afee8bdbf961c0e6f028ea3c0480028c3d06" - integrity sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q== +unist-util-visit-parents@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" + integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== + dependencies: + unist-util-is "^3.0.0" unist-util-visit-parents@^3.0.0: version "3.1.1" @@ -21445,6 +21561,13 @@ unist-util-visit-parents@^3.0.0: "@types/unist" "^2.0.0" unist-util-is "^4.0.0" +unist-util-visit@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" + integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== + dependencies: + unist-util-visit-parents "^2.0.0" + unist-util-visit@^2.0.0, unist-util-visit@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" @@ -21725,7 +21848,7 @@ verror@1.10.0, verror@^1.9.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vfile-location@^3.0.0, vfile-location@^3.1.0: +vfile-location@^3.0.0, vfile-location@^3.1.0, vfile-location@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== @@ -21853,6 +21976,11 @@ wcwidth@^1.0.0: dependencies: defaults "^1.0.3" +web-namespaces@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" + integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"