+ ${originRule(...args)}
+
+
+ `;
+ };
+ }
+
+ md.renderer.rules.code_block = createRenderRule(md.renderer.rules.code_block);
+ md.renderer.rules.fence = createRenderRule(md.renderer.rules.fence);
+
+ return md;
+}
diff --git a/styles/main.scss b/styles/main.scss
index cfa97c8..fb474f1 100644
--- a/styles/main.scss
+++ b/styles/main.scss
@@ -2,5 +2,8 @@
@import "@primer/css/base/index.scss";
@import "@primer/css/markdown/index.scss";
@import "@primer/css/support/index.scss";
+@import "@primer/css/buttons/index.scss";
+@import "@primer/css/utilities/index.scss";
+@import "@primer/css/tooltips/index.scss";
@import "./reset.scss";
@import "./highlight.scss";
diff --git a/styles/reset.scss b/styles/reset.scss
index 651cfc6..a3cdf49 100644
--- a/styles/reset.scss
+++ b/styles/reset.scss
@@ -56,4 +56,21 @@ body.showEditorSelection {
.footnote-backref {
font-family: monospace;
}
+
+ .highlight {
+ .zeroclipboard-container {
+ display: none;
+ animation: fade-out 200ms both;
+ }
+ &:hover {
+ .zeroclipboard-container {
+ display: block;
+ animation: fade-in 200ms both;
+ }
+ }
+ .ClipboardButton.ClipboardButton--success {
+ border-color: var(--color-success-emphasis);
+ box-shadow: 0 0 0 0.2em rgb(52 208 88 / 40%);
+ }
+ }
}
diff --git a/web/main.ts b/web/main.ts
index e69de29..fc584de 100644
--- a/web/main.ts
+++ b/web/main.ts
@@ -0,0 +1,18 @@
+import "@primer/view-components/app/components/primer/beta/clipboard_copy";
+import "@primer/view-components/app/components/primer/alpha/tool_tip";
+
+document.addEventListener("clipboard-copy", function (event) {
+ const button = event.target as HTMLButtonElement;
+ button.classList.add(
+ "ClipboardButton--success",
+ "tooltipped",
+ "tooltipped-w",
+ );
+ setTimeout(() => {
+ button.classList.remove(
+ "ClipboardButton--success",
+ "tooltipped",
+ "tooltipped-w",
+ );
+ }, 2e3);
+});