Skip to content

Commit

Permalink
some extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
Tsche committed Feb 4, 2024
1 parent 4854406 commit 2eaeff6
Show file tree
Hide file tree
Showing 12 changed files with 3,246 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
2,834 changes: 2,834 additions & 0 deletions docs/Doxyfile

Large diffs are not rendered by default.

37 changes: 37 additions & 0 deletions docs/alerts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Alerts

The `doxygen-awesome-alerts` extension provides support for GitHub's alert syntax. See [[Markdown] An option to highlight a "Note" and "Warning" using blockquote (Beta)](https://github.com/orgs/community/discussions/16925) for more information.


## Usage

TODO

## Example

> [!NOTE]
> Highlights information that users should take into account, even when skimming.
<br/>

> [!TIP]
> Optional information to help a user be more successful.
<br/>

> [!IMPORTANT]
> Crucial information necessary for users to succeed.
<br/>

> [!WARNING]
> Critical content demanding immediate user attention due to potential risks.
<br/>

> [!CAUTION]
> Negative potential consequences of an action.
<br/>

> [!UNRECOGNIZED]
> This will not be replaced
<br/>

> [!UNCLOSED
> The tag was not closed, so this will not be replaced either.
Empty file added docs/charts.md
Empty file.
Empty file added docs/godbolt.md
Empty file.
98 changes: 98 additions & 0 deletions docs/header.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
<!-- HTML header for doxygen 1.9.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="$langISO">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen $doxygenversion"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/>
<!--BEGIN DISABLE_INDEX-->
<!--BEGIN FULL_SIDEBAR-->
<script type="text/javascript">var page_layout=1;</script>
<!--END FULL_SIDEBAR-->
<!--END DISABLE_INDEX-->
<script type="text/javascript" src="$relpath^jquery.js"></script>
<script type="text/javascript" src="$relpath^dynsections.js"></script>
$treeview
$search
$mathjax
$darkmode
<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
$extrastylesheet

<script type="text/javascript" src="$relpath^doxygen-awesome-fragment-copy-button.js"></script>
<script type="text/javascript" src="$relpath^doxygen-awesome-paragraph-link.js"></script>
<script type="text/javascript" src="$relpath^doxygen-awesome-interactive-toc.js"></script>
<script type="text/javascript" src="$relpath^doxygen-awesome-darkmode-toggle.js"></script>

<!-- Custom doxygen awesome extensions -->
<script type="text/javascript" src="$relpath^doxygen-awesome-godbolt.js"></script>
<script type="text/javascript" src="$relpath^doxygen-awesome-alerts.js"></script>

<script src="https://unpkg.com/[email protected]/dist/frappe-charts.min.umd.js"></script>
<script type="text/javascript" src="$relpath^doxygen-awesome-charts.js"></script>

<script type="text/javascript">
DoxygenAwesomeDarkModeToggle.init();
DoxygenAwesomeInteractiveToc.init();
DoxygenAwesomeParagraphLink.init();
DoxygenAwesomeFragmentCopyButton.init();
// custom extensions
DoxygenAwesomeGodbolt.init();
DoxygenAwesomeAlerts.init();
//DoxygenAwesomeCharts.init();
</script>

</head>
<body>
<!--BEGIN DISABLE_INDEX-->
<!--BEGIN FULL_SIDEBAR-->
<div id="side-nav" class="ui-resizable side-nav-resizable"><!-- do not remove this div, it is closed by doxygen! -->
<!--END FULL_SIDEBAR-->
<!--END DISABLE_INDEX-->

<div id="top"><!-- do not remove this div, it is closed by doxygen! -->

<!--BEGIN TITLEAREA-->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<!--BEGIN PROJECT_LOGO-->
<td id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"/></td>
<!--END PROJECT_LOGO-->
<!--BEGIN PROJECT_NAME-->
<td id="projectalign">
<div id="projectname">$projectname<!--BEGIN PROJECT_NUMBER--><span id="projectnumber">&#160;$projectnumber</span><!--END PROJECT_NUMBER-->
</div>
<!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
</td>
<!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME-->
<!--BEGIN PROJECT_BRIEF-->
<td>
<div id="projectbrief">$projectbrief</div>
</td>
<!--END PROJECT_BRIEF-->
<!--END !PROJECT_NAME-->
<!--BEGIN DISABLE_INDEX-->
<!--BEGIN SEARCHENGINE-->
<!--BEGIN !FULL_SIDEBAR-->
<td>$searchbox</td>
<!--END !FULL_SIDEBAR-->
<!--END SEARCHENGINE-->
<!--END DISABLE_INDEX-->
</tr>
<!--BEGIN SEARCHENGINE-->
<!--BEGIN FULL_SIDEBAR-->
<tr><td colspan="2">$searchbox</td></tr>
<!--END FULL_SIDEBAR-->
<!--END SEARCHENGINE-->
</tbody>
</table>
</div>
<!--END TITLEAREA-->
<!-- end header part -->
Empty file added doxygen-awesome-alerts.css
Empty file.
99 changes: 99 additions & 0 deletions doxygen-awesome-alerts.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
/**
* Replaces alert markers with svg icons
* see https://github.com/orgs/community/discussions/16925
*/

class DoxygenAwesomeAlerts {
static successDuration = 980;

static alerts = {
'[!NOTE]': {
'text': 'Note',
'class': 'markdown-alert-note',
'path':
'M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'
},
'[!TIP]': {
'text': 'Tip',
'class': 'markdown-alert-tip',
'path':
'M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z'
},
'[!IMPORTANT]': {
'text': 'Important',
'class': 'markdown-alert-important',
'path':
'M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'
},
'[!WARNING]': {
'text': 'Warning',
'class': 'markdown-alert-warning',
'path':
'M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'
},
'[!CAUTION]': {
'text': 'Caution',
'class': 'markdown-alert-caution',
'path':
'M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'
}
}

static get_alert(config) {
let alert = document.createElement('p');

let svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svg.setAttribute('class', config['class'])
svg.setAttribute('viewBox', '0 0 16 16');
svg.setAttribute('width', '16');
svg.setAttribute('height', '16');
svg.ariaHidden = true;

let path = document.createElementNS('http://www.w3.org/2000/svg', 'path')
path.setAttribute('d', config['path'])
svg.appendChild(path);

alert.appendChild(svg);
alert.innerHTML += config['text'];

return alert;
}

static init() {
$(() => {
const blockquotes = document.getElementsByTagName('blockquote');
for (const blockquote of blockquotes) {
let first_paragraph = blockquote.getElementsByTagName('p')[0];
let text = first_paragraph.innerHTML.trimStart();
if (text.charCodeAt(0) == 8205) {
// remove zero-width joiner if there is one
text = text.slice(1);
}

if (!text.startsWith('[!')) {
// not an alert
continue;
}
const closing_brace = text.indexOf(']');
if (closing_brace == -1) {
// unclosed tag, bail out
continue;
}

const tag = text.substring(0, closing_brace + 1);
const info = DoxygenAwesomeAlerts.alerts[tag];
if (!info) {
// could not find tag, bail out
continue;
}
const alert = DoxygenAwesomeAlerts.get_alert(info);
// blockquote.insertBefore(DoxygenAwesomeAlerts.get_alert(info), first_paragraph);

// remove tag from text
text = text.slice(tag.length);
first_paragraph.innerHTML = text;
first_paragraph.prepend(alert);
}
})
}
}
6 changes: 6 additions & 0 deletions doxygen-awesome-charts.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

function render_chart(target_id, chart) {
$.getJSON(chart, function(data) {
return new frappe.Chart(target_id, data);
});
}
55 changes: 55 additions & 0 deletions doxygen-awesome-godbolt.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
.doxygen-awesome-fragment-wrapper {
position: relative;
}

doxygen-awesome-godbolt {
opacity: 0;
background: var(--fragment-background);
width: 28px;
height: 28px;
position: absolute;
right: calc(var(--spacing-large) * 3);
top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
border: 1px solid var(--fragment-foreground);
cursor: pointer;
border-radius: var(--border-radius-small);
display: flex;
justify-content: center;
align-items: center;
}

.doxygen-awesome-fragment-wrapper:hover doxygen-awesome-godbolt, doxygen-awesome-godbolt.success {
opacity: .28;
}

doxygen-awesome-godbolt:hover, doxygen-awesome-godbolt.success {
opacity: 1 !important;
}

doxygen-awesome-godbolt:active:not([class~=success]) svg {
transform: scale(.91);
}

doxygen-awesome-godbolt svg {
fill: var(--fragment-foreground);
width: 18px;
height: 18px;
}

doxygen-awesome-godbolt.success svg {
fill: rgb(14, 168, 14);
}

doxygen-awesome-godbolt.success {
border-color: rgb(14, 168, 14);
}

@media screen and (max-width: 767px) {
.textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-godbolt,
.textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-godbolt,
.memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-godbolt,
.memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-godbolt,
dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-godbolt {
right: 0;
}
}
Loading

0 comments on commit 2eaeff6

Please sign in to comment.