superfuse-wizard
Version:
Interactive smart contract generator based on Superchain 's interoperability standard.
9 lines (6 loc) • 590 B
text/typescript
import { version as contractsVersion } from "@openzeppelin/contracts/package.json";
export function injectHyperlinks(code: string) {
// We are modifying HTML, so use HTML escaped chars. The pattern excludes paths that include /../ in the URL.
const importRegex = /"(@openzeppelin\/)(contracts-upgradeable\/|contracts\/)((?:(?!\.\.)[^/]+\/)*?[^/]*?)"/g
return code.replace(importRegex, `"<a class="import-link" href="https://github.com/OpenZeppelin/openzeppelin-$2blob/v${contractsVersion}/contracts/$3" target="_blank" rel="noopener noreferrer">$1$2$3</a>"`);
}