update
This commit is contained in:
BIN
Binary file not shown.
+638
@@ -0,0 +1,638 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="generator" content="quarto-1.4.480">
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||||||
|
|
||||||
|
|
||||||
|
<title>Version: main - MANUSCRIPT TITLE</title>
|
||||||
|
<style>
|
||||||
|
code{white-space: pre-wrap;}
|
||||||
|
span.smallcaps{font-variant: small-caps;}
|
||||||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
|
ul.task-list{list-style: none;}
|
||||||
|
ul.task-list li input[type="checkbox"] {
|
||||||
|
width: 0.8em;
|
||||||
|
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="../site_libs/quarto-nav/quarto-nav.js"></script>
|
||||||
|
<script src="../site_libs/quarto-nav/headroom.min.js"></script>
|
||||||
|
<script src="../site_libs/clipboard/clipboard.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/autocomplete.umd.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/fuse.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/quarto-search.js"></script>
|
||||||
|
<meta name="quarto:offset" content="../">
|
||||||
|
<script src="../site_libs/quarto-html/quarto.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/popper.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/anchor.min.js"></script>
|
||||||
|
<link href="../site_libs/quarto-html/tippy.css" rel="stylesheet">
|
||||||
|
<link href="../site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
|
||||||
|
<script src="../site_libs/bootstrap/bootstrap.min.js"></script>
|
||||||
|
<link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
|
||||||
|
<link href="../site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
|
||||||
|
<script id="quarto-search-options" type="application/json">{
|
||||||
|
"location": "navbar",
|
||||||
|
"copy-button": false,
|
||||||
|
"collapse-after": 3,
|
||||||
|
"panel-placement": "end",
|
||||||
|
"type": "overlay",
|
||||||
|
"limit": 50,
|
||||||
|
"keyboard-shortcut": [
|
||||||
|
"f",
|
||||||
|
"/",
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
"show-item-context": false,
|
||||||
|
"language": {
|
||||||
|
"search-no-results-text": "No results",
|
||||||
|
"search-matching-documents-text": "matching documents",
|
||||||
|
"search-copy-link-title": "Copy link to search",
|
||||||
|
"search-hide-matches-text": "Hide additional matches",
|
||||||
|
"search-more-match-text": "more match in this document",
|
||||||
|
"search-more-matches-text": "more matches in this document",
|
||||||
|
"search-clear-button-title": "Clear",
|
||||||
|
"search-detached-cancel-button-title": "Cancel",
|
||||||
|
"search-submit-button-title": "Submit",
|
||||||
|
"search-label": "Search"
|
||||||
|
}
|
||||||
|
}</script>
|
||||||
|
<script type="application/json" class="js-hypothesis-config">
|
||||||
|
{
|
||||||
|
"theme": "clean",
|
||||||
|
"openSidebar": false
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script async="" src="https://hypothes.is/embed.js"></script>
|
||||||
|
<script>
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (_event) {
|
||||||
|
document.body.classList.add('hypothesis-enabled');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="_extensions/inst/css/style.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="nav-fixed">
|
||||||
|
|
||||||
|
<div id="quarto-search-results"></div>
|
||||||
|
<header id="quarto-header" class="headroom fixed-top">
|
||||||
|
<nav class="navbar navbar-expand-lg " data-bs-theme="dark">
|
||||||
|
<div class="navbar-container container-fluid">
|
||||||
|
<div class="navbar-brand-container mx-auto">
|
||||||
|
<a class="navbar-brand" href="../index.html">
|
||||||
|
<span class="navbar-title">Version: main</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id="quarto-search" class="" title="Search"></div>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarCollapse">
|
||||||
|
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html"> <i class="bi bi-house" role="img">
|
||||||
|
</i>
|
||||||
|
<span class="menu-text">Home</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/MS.html">
|
||||||
|
<span class="menu-text">Manuscript</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/SM.html">
|
||||||
|
<span class="menu-text">Supplementary Materials</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/RN.html">
|
||||||
|
<span class="menu-text">Revision Notes</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../SD/index.html">
|
||||||
|
<span class="menu-text">Slides</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-other" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<span class="menu-text">Other</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-other">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/HL.html">
|
||||||
|
<span class="dropdown-text">Highlights</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/CL.html">
|
||||||
|
<span class="dropdown-text">Cover Letter</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/AC.html">
|
||||||
|
<span class="dropdown-text">Author Credits</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../TC/index.html">
|
||||||
|
<span class="dropdown-text">Trackchanges</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../RP/index.html">
|
||||||
|
<span class="dropdown-text">Report</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../AC/index.html">
|
||||||
|
<span class="dropdown-text">Acomplishment</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-bi-git" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="bi bi-git" role="img">
|
||||||
|
</i>
|
||||||
|
<span class="menu-text"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-bi-git">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/_edit/">
|
||||||
|
<span class="dropdown-text">Edit</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/issues">
|
||||||
|
<span class="dropdown-text">Issue</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div> <!-- /navcollapse -->
|
||||||
|
<div class="quarto-navbar-tools">
|
||||||
|
<a href="" class="quarto-reader-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleReader(); return false;" title="Toggle reader mode">
|
||||||
|
<div class="quarto-reader-toggle-btn">
|
||||||
|
<i class="bi"></i>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div> <!-- /container-fluid -->
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<!-- content -->
|
||||||
|
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
|
||||||
|
<!-- sidebar -->
|
||||||
|
<!-- margin-sidebar -->
|
||||||
|
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
|
||||||
|
|
||||||
|
<div class="quarto-alternate-formats"><h2>Other Formats</h2><ul><li><a href="AC.docx"><i class="bi bi-file-word"></i>MS Word</a></li><li><a href="AC.pdf"><i class="bi bi-file-pdf"></i>PDF (elsevier)</a></li></ul></div></div>
|
||||||
|
<!-- main -->
|
||||||
|
<main class="content" id="quarto-document-content">
|
||||||
|
|
||||||
|
<header id="title-block-header" class="quarto-title-block default">
|
||||||
|
<div class="quarto-title">
|
||||||
|
<h1 class="title">MANUSCRIPT TITLE</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="quarto-title-meta">
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div class="quarto-title-meta-heading">Published</div>
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="date">Friday, November 10, 2023</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<p><span>Ming Su<sup>1,2</sup>, </span><span>Min Yang<sup>1,2,*</sup></span></p>
|
||||||
|
<p>1. State Key Laboratory of Environmental Aquatic Chemistry, Research Center for Eco-Environmental Sciences, Chinese Academy of Sciences, P.O. Box 2871, Beijing, 100085.</p>
|
||||||
|
<p>2. University of Chinese Academy of Sciences, Beijing, 100049.</p>
|
||||||
|
<p>* Corresponding Author: Min Yang (<a href="mailto:yangmin@rcees.ac.cn">yangmin@rcees.ac.cn</a>)</p>
|
||||||
|
<section id="credit-authorship-contribution-statement" class="level1 unnumbered">
|
||||||
|
<h1 class="unnumbered">CRediT authorship contribution statement</h1>
|
||||||
|
<p>Ming Su: Conceptualization, Methodology, Validation, Formal analysis, Writing - Original Draft, Writing - Review & Editing, Visualization, Project administration, Funding acquisition. Yiping Zhu: Investigation, Resources, Project administration. Michael Burch: Writing - Review & Editing. Jinping Lu, Tengxin Cao, Yufan Ai: Investigation. Jianwei Yu: Resources. Min Yang: Conceptualization, Validation, Formal analysis, Writing - Review & Editing, Project administration, Resources, Funding acquisition, Supervision.</p>
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</main> <!-- /main -->
|
||||||
|
<script id="quarto-html-after-body" type="application/javascript">
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (event) {
|
||||||
|
const toggleBodyColorMode = (bsSheetEl) => {
|
||||||
|
const mode = bsSheetEl.getAttribute("data-mode");
|
||||||
|
const bodyEl = window.document.querySelector("body");
|
||||||
|
if (mode === "dark") {
|
||||||
|
bodyEl.classList.add("quarto-dark");
|
||||||
|
bodyEl.classList.remove("quarto-light");
|
||||||
|
} else {
|
||||||
|
bodyEl.classList.add("quarto-light");
|
||||||
|
bodyEl.classList.remove("quarto-dark");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const toggleBodyColorPrimary = () => {
|
||||||
|
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
||||||
|
if (bsSheetEl) {
|
||||||
|
toggleBodyColorMode(bsSheetEl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toggleBodyColorPrimary();
|
||||||
|
const icon = "";
|
||||||
|
const anchorJS = new window.AnchorJS();
|
||||||
|
anchorJS.options = {
|
||||||
|
placement: 'right',
|
||||||
|
icon: icon
|
||||||
|
};
|
||||||
|
anchorJS.add('.anchored');
|
||||||
|
const isCodeAnnotation = (el) => {
|
||||||
|
for (const clz of el.classList) {
|
||||||
|
if (clz.startsWith('code-annotation-')) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const clipboard = new window.ClipboardJS('.code-copy-button', {
|
||||||
|
text: function(trigger) {
|
||||||
|
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
||||||
|
for (const childEl of codeEl.children) {
|
||||||
|
if (isCodeAnnotation(childEl)) {
|
||||||
|
childEl.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return codeEl.innerText;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
clipboard.on('success', function(e) {
|
||||||
|
// button target
|
||||||
|
const button = e.trigger;
|
||||||
|
// don't keep focus
|
||||||
|
button.blur();
|
||||||
|
// flash "checked"
|
||||||
|
button.classList.add('code-copy-button-checked');
|
||||||
|
var currentTitle = button.getAttribute("title");
|
||||||
|
button.setAttribute("title", "Copied!");
|
||||||
|
let tooltip;
|
||||||
|
if (window.bootstrap) {
|
||||||
|
button.setAttribute("data-bs-toggle", "tooltip");
|
||||||
|
button.setAttribute("data-bs-placement", "left");
|
||||||
|
button.setAttribute("data-bs-title", "Copied!");
|
||||||
|
tooltip = new bootstrap.Tooltip(button,
|
||||||
|
{ trigger: "manual",
|
||||||
|
customClass: "code-copy-button-tooltip",
|
||||||
|
offset: [0, -8]});
|
||||||
|
tooltip.show();
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
|
if (tooltip) {
|
||||||
|
tooltip.hide();
|
||||||
|
button.removeAttribute("data-bs-title");
|
||||||
|
button.removeAttribute("data-bs-toggle");
|
||||||
|
button.removeAttribute("data-bs-placement");
|
||||||
|
}
|
||||||
|
button.setAttribute("title", currentTitle);
|
||||||
|
button.classList.remove('code-copy-button-checked');
|
||||||
|
}, 1000);
|
||||||
|
// clear code selection
|
||||||
|
e.clearSelection();
|
||||||
|
});
|
||||||
|
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
|
||||||
|
const config = {
|
||||||
|
allowHTML: true,
|
||||||
|
maxWidth: 500,
|
||||||
|
delay: 100,
|
||||||
|
arrow: false,
|
||||||
|
appendTo: function(el) {
|
||||||
|
return el.parentElement;
|
||||||
|
},
|
||||||
|
interactive: true,
|
||||||
|
interactiveBorder: 10,
|
||||||
|
theme: 'quarto',
|
||||||
|
placement: 'bottom-start',
|
||||||
|
};
|
||||||
|
if (contentFn) {
|
||||||
|
config.content = contentFn;
|
||||||
|
}
|
||||||
|
if (onTriggerFn) {
|
||||||
|
config.onTrigger = onTriggerFn;
|
||||||
|
}
|
||||||
|
if (onUntriggerFn) {
|
||||||
|
config.onUntrigger = onUntriggerFn;
|
||||||
|
}
|
||||||
|
window.tippy(el, config);
|
||||||
|
}
|
||||||
|
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
||||||
|
for (var i=0; i<noterefs.length; i++) {
|
||||||
|
const ref = noterefs[i];
|
||||||
|
tippyHover(ref, function() {
|
||||||
|
// use id or data attribute instead here
|
||||||
|
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
||||||
|
try { href = new URL(href).hash; } catch {}
|
||||||
|
const id = href.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
return note.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const xrefs = window.document.querySelectorAll('a.quarto-xref');
|
||||||
|
const processXRef = (id, note) => {
|
||||||
|
// Strip column container classes
|
||||||
|
const stripColumnClz = (el) => {
|
||||||
|
el.classList.remove("page-full", "page-columns");
|
||||||
|
if (el.children) {
|
||||||
|
for (const child of el.children) {
|
||||||
|
stripColumnClz(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stripColumnClz(note)
|
||||||
|
const typesetMath = (el) => {
|
||||||
|
if (window.MathJax) {
|
||||||
|
// MathJax Typeset
|
||||||
|
window.MathJax.typeset([el]);
|
||||||
|
} else if (window.katex) {
|
||||||
|
// KaTeX Render
|
||||||
|
var mathElements = el.getElementsByClassName("math");
|
||||||
|
var macros = [];
|
||||||
|
for (var i = 0; i < mathElements.length; i++) {
|
||||||
|
var texText = mathElements[i].firstChild;
|
||||||
|
if (mathElements[i].tagName == "SPAN") {
|
||||||
|
window.katex.render(texText.data, mathElements[i], {
|
||||||
|
displayMode: mathElements[i].classList.contains('display'),
|
||||||
|
throwOnError: false,
|
||||||
|
macros: macros,
|
||||||
|
fleqn: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (id === null || id.startsWith('sec-')) {
|
||||||
|
// Special case sections, only their first couple elements
|
||||||
|
const container = document.createElement("div");
|
||||||
|
if (note.children && note.children.length > 2) {
|
||||||
|
for (let i = 0; i < 2; i++) {
|
||||||
|
container.appendChild(note.children[i].cloneNode(true));
|
||||||
|
}
|
||||||
|
typesetMath(container);
|
||||||
|
return container.innerHTML
|
||||||
|
} else {
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Remove any anchor links if they are present
|
||||||
|
const anchorLink = note.querySelector('a.anchorjs-link');
|
||||||
|
if (anchorLink) {
|
||||||
|
anchorLink.remove();
|
||||||
|
}
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (var i=0; i<xrefs.length; i++) {
|
||||||
|
const xref = xrefs[i];
|
||||||
|
tippyHover(xref, undefined, function(instance) {
|
||||||
|
instance.disable();
|
||||||
|
let url = xref.getAttribute('href');
|
||||||
|
let hash = undefined;
|
||||||
|
if (url.startsWith('#')) {
|
||||||
|
hash = url;
|
||||||
|
} else {
|
||||||
|
try { hash = new URL(url).hash; } catch {}
|
||||||
|
}
|
||||||
|
if (hash) {
|
||||||
|
const id = hash.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
try {
|
||||||
|
const html = processXRef(id, note.cloneNode(true));
|
||||||
|
instance.setContent(html);
|
||||||
|
} finally {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch this
|
||||||
|
fetch(url.split('#')[0])
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
const html = processXRef(id, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch a full url (with no hash to target)
|
||||||
|
// This is a special case and we should probably do some content thinning / targeting
|
||||||
|
fetch(url)
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.querySelector('main.content');
|
||||||
|
if (note !== null) {
|
||||||
|
// This should only happen for chapter cross references
|
||||||
|
// (since there is no id in the URL)
|
||||||
|
// remove the first header
|
||||||
|
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
|
||||||
|
note.children[0].remove();
|
||||||
|
}
|
||||||
|
const html = processXRef(null, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, function(instance) {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let selectedAnnoteEl;
|
||||||
|
const selectorForAnnotation = ( cell, annotation) => {
|
||||||
|
let cellAttr = 'data-code-cell="' + cell + '"';
|
||||||
|
let lineAttr = 'data-code-annotation="' + annotation + '"';
|
||||||
|
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
|
||||||
|
return selector;
|
||||||
|
}
|
||||||
|
const selectCodeLines = (annoteEl) => {
|
||||||
|
const doc = window.document;
|
||||||
|
const targetCell = annoteEl.getAttribute("data-target-cell");
|
||||||
|
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
|
||||||
|
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
|
||||||
|
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
|
||||||
|
const lineIds = lines.map((line) => {
|
||||||
|
return targetCell + "-" + line;
|
||||||
|
})
|
||||||
|
let top = null;
|
||||||
|
let height = null;
|
||||||
|
let parent = null;
|
||||||
|
if (lineIds.length > 0) {
|
||||||
|
//compute the position of the single el (top and bottom and make a div)
|
||||||
|
const el = window.document.getElementById(lineIds[0]);
|
||||||
|
top = el.offsetTop;
|
||||||
|
height = el.offsetHeight;
|
||||||
|
parent = el.parentElement.parentElement;
|
||||||
|
if (lineIds.length > 1) {
|
||||||
|
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
|
||||||
|
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
|
||||||
|
height = bottom - top;
|
||||||
|
}
|
||||||
|
if (top !== null && height !== null && parent !== null) {
|
||||||
|
// cook up a div (if necessary) and position it
|
||||||
|
let div = window.document.getElementById("code-annotation-line-highlight");
|
||||||
|
if (div === null) {
|
||||||
|
div = window.document.createElement("div");
|
||||||
|
div.setAttribute("id", "code-annotation-line-highlight");
|
||||||
|
div.style.position = 'absolute';
|
||||||
|
parent.appendChild(div);
|
||||||
|
}
|
||||||
|
div.style.top = top - 2 + "px";
|
||||||
|
div.style.height = height + 4 + "px";
|
||||||
|
div.style.left = 0;
|
||||||
|
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
|
||||||
|
if (gutterDiv === null) {
|
||||||
|
gutterDiv = window.document.createElement("div");
|
||||||
|
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
|
||||||
|
gutterDiv.style.position = 'absolute';
|
||||||
|
const codeCell = window.document.getElementById(targetCell);
|
||||||
|
const gutter = codeCell.querySelector('.code-annotation-gutter');
|
||||||
|
gutter.appendChild(gutterDiv);
|
||||||
|
}
|
||||||
|
gutterDiv.style.top = top - 2 + "px";
|
||||||
|
gutterDiv.style.height = height + 4 + "px";
|
||||||
|
}
|
||||||
|
selectedAnnoteEl = annoteEl;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const unselectCodeLines = () => {
|
||||||
|
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
|
||||||
|
elementsIds.forEach((elId) => {
|
||||||
|
const div = window.document.getElementById(elId);
|
||||||
|
if (div) {
|
||||||
|
div.remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
selectedAnnoteEl = undefined;
|
||||||
|
};
|
||||||
|
// Handle positioning of the toggle
|
||||||
|
window.addEventListener(
|
||||||
|
"resize",
|
||||||
|
throttle(() => {
|
||||||
|
elRect = undefined;
|
||||||
|
if (selectedAnnoteEl) {
|
||||||
|
selectCodeLines(selectedAnnoteEl);
|
||||||
|
}
|
||||||
|
}, 10)
|
||||||
|
);
|
||||||
|
function throttle(fn, ms) {
|
||||||
|
let throttle = false;
|
||||||
|
let timer;
|
||||||
|
return (...args) => {
|
||||||
|
if(!throttle) { // first call gets through
|
||||||
|
fn.apply(this, args);
|
||||||
|
throttle = true;
|
||||||
|
} else { // all the others get throttled
|
||||||
|
if(timer) clearTimeout(timer); // cancel #2
|
||||||
|
timer = setTimeout(() => {
|
||||||
|
fn.apply(this, args);
|
||||||
|
timer = throttle = false;
|
||||||
|
}, ms);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// Attach click handler to the DT
|
||||||
|
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
|
||||||
|
for (const annoteDlNode of annoteDls) {
|
||||||
|
annoteDlNode.addEventListener('click', (event) => {
|
||||||
|
const clickedEl = event.target;
|
||||||
|
if (clickedEl !== selectedAnnoteEl) {
|
||||||
|
unselectCodeLines();
|
||||||
|
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
|
||||||
|
if (activeEl) {
|
||||||
|
activeEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
selectCodeLines(clickedEl);
|
||||||
|
clickedEl.classList.add('code-annotation-active');
|
||||||
|
} else {
|
||||||
|
// Unselect the line
|
||||||
|
unselectCodeLines();
|
||||||
|
clickedEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const findCites = (el) => {
|
||||||
|
const parentEl = el.parentElement;
|
||||||
|
if (parentEl) {
|
||||||
|
const cites = parentEl.dataset.cites;
|
||||||
|
if (cites) {
|
||||||
|
return {
|
||||||
|
el,
|
||||||
|
cites: cites.split(' ')
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return findCites(el.parentElement)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
||||||
|
for (var i=0; i<bibliorefs.length; i++) {
|
||||||
|
const ref = bibliorefs[i];
|
||||||
|
const citeInfo = findCites(ref);
|
||||||
|
if (citeInfo) {
|
||||||
|
tippyHover(citeInfo.el, function() {
|
||||||
|
var popup = window.document.createElement('div');
|
||||||
|
citeInfo.cites.forEach(function(cite) {
|
||||||
|
var citeDiv = window.document.createElement('div');
|
||||||
|
citeDiv.classList.add('hanging-indent');
|
||||||
|
citeDiv.classList.add('csl-entry');
|
||||||
|
var biblioDiv = window.document.getElementById('ref-' + cite);
|
||||||
|
if (biblioDiv) {
|
||||||
|
citeDiv.innerHTML = biblioDiv.innerHTML;
|
||||||
|
}
|
||||||
|
popup.appendChild(citeDiv);
|
||||||
|
});
|
||||||
|
return popup.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div> <!-- /content -->
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="nav-footer">
|
||||||
|
<div class="nav-footer-left">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="nav-footer-center">
|
||||||
|
<p>Copyright 2023, <a href="https://drwater.rcees.ac.cn">Ming Su</a></p>
|
||||||
|
<div class="toc-actions"><ul><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/edit/main/MS/AC.qmd" class="toc-action"><i class="bi bi-git"></i>Edit this page</a></li><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/blob/main/MS/AC.qmd" class="toc-action"><i class="bi empty"></i>View source</a></li><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/issues/new" class="toc-action"><i class="bi empty"></i>Report an issue</a></li></ul></div></div>
|
||||||
|
<div class="nav-footer-right">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body></html>
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
format:
|
||||||
|
elsevier-html:
|
||||||
|
filters:
|
||||||
|
- author-info-blocks
|
||||||
|
css: _extensions/inst/css/style.css
|
||||||
|
docx:
|
||||||
|
reference-doc: _extensions/inst/word/MS.docx
|
||||||
|
filters:
|
||||||
|
- author-info-blocks
|
||||||
|
elsevier-pdf:
|
||||||
|
latex-clean: false
|
||||||
|
header-includes:
|
||||||
|
# - \usepackage{threeparttable}
|
||||||
|
# - \usepackage{fontspec}
|
||||||
|
# - \usepackage{endfloat}
|
||||||
|
- \setmainfont{Calibri}
|
||||||
|
# - \usepackage[UTF8, scheme=plain]{ctex}
|
||||||
|
# - \usepackage{float}
|
||||||
|
- \usepackage[normalem]{ulem}
|
||||||
|
- \usepackage[doublespacing]{setspace}
|
||||||
|
journal:
|
||||||
|
formatting: preprint
|
||||||
|
model: 1p
|
||||||
|
cite-style: authoryear
|
||||||
|
---
|
||||||
|
|
||||||
|
# CRediT authorship contribution statement {-}
|
||||||
|
|
||||||
|
Ming Su: Conceptualization, Methodology, Validation, Formal analysis, Writing - Original Draft, Writing - Review & Editing, Visualization, Project administration, Funding acquisition. Yiping Zhu: Investigation, Resources, Project administration. Michael Burch: Writing - Review & Editing. Jinping Lu, Tengxin Cao, Yufan Ai: Investigation. Jianwei Yu: Resources. Min Yang: Conceptualization, Validation, Formal analysis, Writing - Review & Editing, Project administration, Resources, Funding acquisition, Supervision.
|
||||||
|
|
||||||
+644
@@ -0,0 +1,644 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="generator" content="quarto-1.4.480">
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||||||
|
|
||||||
|
<meta name="author" content="Min Yang">
|
||||||
|
<meta name="dcterms.date" content="2023-11-10">
|
||||||
|
|
||||||
|
<title>Version: main - MANUSCRIPT TITLE</title>
|
||||||
|
<style>
|
||||||
|
code{white-space: pre-wrap;}
|
||||||
|
span.smallcaps{font-variant: small-caps;}
|
||||||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
|
ul.task-list{list-style: none;}
|
||||||
|
ul.task-list li input[type="checkbox"] {
|
||||||
|
width: 0.8em;
|
||||||
|
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="../site_libs/quarto-nav/quarto-nav.js"></script>
|
||||||
|
<script src="../site_libs/quarto-nav/headroom.min.js"></script>
|
||||||
|
<script src="../site_libs/clipboard/clipboard.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/autocomplete.umd.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/fuse.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/quarto-search.js"></script>
|
||||||
|
<meta name="quarto:offset" content="../">
|
||||||
|
<script src="../site_libs/quarto-html/quarto.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/popper.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/anchor.min.js"></script>
|
||||||
|
<link href="../site_libs/quarto-html/tippy.css" rel="stylesheet">
|
||||||
|
<link href="../site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
|
||||||
|
<script src="../site_libs/bootstrap/bootstrap.min.js"></script>
|
||||||
|
<link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
|
||||||
|
<link href="../site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
|
||||||
|
<script id="quarto-search-options" type="application/json">{
|
||||||
|
"location": "navbar",
|
||||||
|
"copy-button": false,
|
||||||
|
"collapse-after": 3,
|
||||||
|
"panel-placement": "end",
|
||||||
|
"type": "overlay",
|
||||||
|
"limit": 50,
|
||||||
|
"keyboard-shortcut": [
|
||||||
|
"f",
|
||||||
|
"/",
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
"show-item-context": false,
|
||||||
|
"language": {
|
||||||
|
"search-no-results-text": "No results",
|
||||||
|
"search-matching-documents-text": "matching documents",
|
||||||
|
"search-copy-link-title": "Copy link to search",
|
||||||
|
"search-hide-matches-text": "Hide additional matches",
|
||||||
|
"search-more-match-text": "more match in this document",
|
||||||
|
"search-more-matches-text": "more matches in this document",
|
||||||
|
"search-clear-button-title": "Clear",
|
||||||
|
"search-detached-cancel-button-title": "Cancel",
|
||||||
|
"search-submit-button-title": "Submit",
|
||||||
|
"search-label": "Search"
|
||||||
|
}
|
||||||
|
}</script>
|
||||||
|
<script type="application/json" class="js-hypothesis-config">
|
||||||
|
{
|
||||||
|
"theme": "clean",
|
||||||
|
"openSidebar": false
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script async="" src="https://hypothes.is/embed.js"></script>
|
||||||
|
<script>
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (_event) {
|
||||||
|
document.body.classList.add('hypothesis-enabled');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="../site_libs/quarto-contrib/quarto-project/inst/css/style.css">
|
||||||
|
<link rel="stylesheet" href="_extensions/inst/css/style.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="nav-fixed">
|
||||||
|
|
||||||
|
<div id="quarto-search-results"></div>
|
||||||
|
<header id="quarto-header" class="headroom fixed-top">
|
||||||
|
<nav class="navbar navbar-expand-lg " data-bs-theme="dark">
|
||||||
|
<div class="navbar-container container-fluid">
|
||||||
|
<div class="navbar-brand-container mx-auto">
|
||||||
|
<a class="navbar-brand" href="../index.html">
|
||||||
|
<span class="navbar-title">Version: main</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id="quarto-search" class="" title="Search"></div>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarCollapse">
|
||||||
|
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html"> <i class="bi bi-house" role="img">
|
||||||
|
</i>
|
||||||
|
<span class="menu-text">Home</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/MS.html">
|
||||||
|
<span class="menu-text">Manuscript</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/SM.html">
|
||||||
|
<span class="menu-text">Supplementary Materials</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/RN.html">
|
||||||
|
<span class="menu-text">Revision Notes</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../SD/index.html">
|
||||||
|
<span class="menu-text">Slides</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-other" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<span class="menu-text">Other</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-other">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/HL.html">
|
||||||
|
<span class="dropdown-text">Highlights</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/CL.html">
|
||||||
|
<span class="dropdown-text">Cover Letter</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/AC.html">
|
||||||
|
<span class="dropdown-text">Author Credits</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../TC/index.html">
|
||||||
|
<span class="dropdown-text">Trackchanges</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../RP/index.html">
|
||||||
|
<span class="dropdown-text">Report</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../AC/index.html">
|
||||||
|
<span class="dropdown-text">Acomplishment</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-bi-git" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="bi bi-git" role="img">
|
||||||
|
</i>
|
||||||
|
<span class="menu-text"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-bi-git">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/_edit/">
|
||||||
|
<span class="dropdown-text">Edit</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/issues">
|
||||||
|
<span class="dropdown-text">Issue</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div> <!-- /navcollapse -->
|
||||||
|
<div class="quarto-navbar-tools">
|
||||||
|
<a href="" class="quarto-reader-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleReader(); return false;" title="Toggle reader mode">
|
||||||
|
<div class="quarto-reader-toggle-btn">
|
||||||
|
<i class="bi"></i>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div> <!-- /container-fluid -->
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<!-- content -->
|
||||||
|
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
|
||||||
|
<!-- sidebar -->
|
||||||
|
<!-- margin-sidebar -->
|
||||||
|
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
|
||||||
|
|
||||||
|
<div class="quarto-alternate-formats"><h2>Other Formats</h2><ul><li><a href="CL.pdf"><i class="bi bi-file-pdf"></i>PDF</a></li></ul></div></div>
|
||||||
|
<!-- main -->
|
||||||
|
<main class="content" id="quarto-document-content">
|
||||||
|
|
||||||
|
<header id="title-block-header" class="quarto-title-block default">
|
||||||
|
<div class="quarto-title">
|
||||||
|
<h1 class="title">MANUSCRIPT TITLE</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="quarto-title-meta-author">
|
||||||
|
<div class="quarto-title-meta-heading">Author</div>
|
||||||
|
<div class="quarto-title-meta-heading">Affiliations</div>
|
||||||
|
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="author">Min Yang </p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="quarto-title-meta">
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div class="quarto-title-meta-heading">Published</div>
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="date">November 10, 2023</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<p>Thank you for your consideration our manuscript (<code>WR73679</code>) in publishing in Water Research, and we also thank the reviewers for their kind and valuable comments.</p>
|
||||||
|
<p>We have carefully revised the manuscripte according to each comment from the reviewers. As requested, revision note with point to point responses and actions, change tracking manuscript and revised manuscript have been prepared and included in the revision submission.</p>
|
||||||
|
<p>We believe that the paper has been greatly improved. Looking forward to your further instruction regarding its publication.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</main> <!-- /main -->
|
||||||
|
<script id="quarto-html-after-body" type="application/javascript">
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (event) {
|
||||||
|
const toggleBodyColorMode = (bsSheetEl) => {
|
||||||
|
const mode = bsSheetEl.getAttribute("data-mode");
|
||||||
|
const bodyEl = window.document.querySelector("body");
|
||||||
|
if (mode === "dark") {
|
||||||
|
bodyEl.classList.add("quarto-dark");
|
||||||
|
bodyEl.classList.remove("quarto-light");
|
||||||
|
} else {
|
||||||
|
bodyEl.classList.add("quarto-light");
|
||||||
|
bodyEl.classList.remove("quarto-dark");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const toggleBodyColorPrimary = () => {
|
||||||
|
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
||||||
|
if (bsSheetEl) {
|
||||||
|
toggleBodyColorMode(bsSheetEl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toggleBodyColorPrimary();
|
||||||
|
const icon = "";
|
||||||
|
const anchorJS = new window.AnchorJS();
|
||||||
|
anchorJS.options = {
|
||||||
|
placement: 'right',
|
||||||
|
icon: icon
|
||||||
|
};
|
||||||
|
anchorJS.add('.anchored');
|
||||||
|
const isCodeAnnotation = (el) => {
|
||||||
|
for (const clz of el.classList) {
|
||||||
|
if (clz.startsWith('code-annotation-')) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const clipboard = new window.ClipboardJS('.code-copy-button', {
|
||||||
|
text: function(trigger) {
|
||||||
|
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
||||||
|
for (const childEl of codeEl.children) {
|
||||||
|
if (isCodeAnnotation(childEl)) {
|
||||||
|
childEl.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return codeEl.innerText;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
clipboard.on('success', function(e) {
|
||||||
|
// button target
|
||||||
|
const button = e.trigger;
|
||||||
|
// don't keep focus
|
||||||
|
button.blur();
|
||||||
|
// flash "checked"
|
||||||
|
button.classList.add('code-copy-button-checked');
|
||||||
|
var currentTitle = button.getAttribute("title");
|
||||||
|
button.setAttribute("title", "Copied!");
|
||||||
|
let tooltip;
|
||||||
|
if (window.bootstrap) {
|
||||||
|
button.setAttribute("data-bs-toggle", "tooltip");
|
||||||
|
button.setAttribute("data-bs-placement", "left");
|
||||||
|
button.setAttribute("data-bs-title", "Copied!");
|
||||||
|
tooltip = new bootstrap.Tooltip(button,
|
||||||
|
{ trigger: "manual",
|
||||||
|
customClass: "code-copy-button-tooltip",
|
||||||
|
offset: [0, -8]});
|
||||||
|
tooltip.show();
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
|
if (tooltip) {
|
||||||
|
tooltip.hide();
|
||||||
|
button.removeAttribute("data-bs-title");
|
||||||
|
button.removeAttribute("data-bs-toggle");
|
||||||
|
button.removeAttribute("data-bs-placement");
|
||||||
|
}
|
||||||
|
button.setAttribute("title", currentTitle);
|
||||||
|
button.classList.remove('code-copy-button-checked');
|
||||||
|
}, 1000);
|
||||||
|
// clear code selection
|
||||||
|
e.clearSelection();
|
||||||
|
});
|
||||||
|
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
|
||||||
|
const config = {
|
||||||
|
allowHTML: true,
|
||||||
|
maxWidth: 500,
|
||||||
|
delay: 100,
|
||||||
|
arrow: false,
|
||||||
|
appendTo: function(el) {
|
||||||
|
return el.parentElement;
|
||||||
|
},
|
||||||
|
interactive: true,
|
||||||
|
interactiveBorder: 10,
|
||||||
|
theme: 'quarto',
|
||||||
|
placement: 'bottom-start',
|
||||||
|
};
|
||||||
|
if (contentFn) {
|
||||||
|
config.content = contentFn;
|
||||||
|
}
|
||||||
|
if (onTriggerFn) {
|
||||||
|
config.onTrigger = onTriggerFn;
|
||||||
|
}
|
||||||
|
if (onUntriggerFn) {
|
||||||
|
config.onUntrigger = onUntriggerFn;
|
||||||
|
}
|
||||||
|
window.tippy(el, config);
|
||||||
|
}
|
||||||
|
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
||||||
|
for (var i=0; i<noterefs.length; i++) {
|
||||||
|
const ref = noterefs[i];
|
||||||
|
tippyHover(ref, function() {
|
||||||
|
// use id or data attribute instead here
|
||||||
|
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
||||||
|
try { href = new URL(href).hash; } catch {}
|
||||||
|
const id = href.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
return note.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const xrefs = window.document.querySelectorAll('a.quarto-xref');
|
||||||
|
const processXRef = (id, note) => {
|
||||||
|
// Strip column container classes
|
||||||
|
const stripColumnClz = (el) => {
|
||||||
|
el.classList.remove("page-full", "page-columns");
|
||||||
|
if (el.children) {
|
||||||
|
for (const child of el.children) {
|
||||||
|
stripColumnClz(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stripColumnClz(note)
|
||||||
|
const typesetMath = (el) => {
|
||||||
|
if (window.MathJax) {
|
||||||
|
// MathJax Typeset
|
||||||
|
window.MathJax.typeset([el]);
|
||||||
|
} else if (window.katex) {
|
||||||
|
// KaTeX Render
|
||||||
|
var mathElements = el.getElementsByClassName("math");
|
||||||
|
var macros = [];
|
||||||
|
for (var i = 0; i < mathElements.length; i++) {
|
||||||
|
var texText = mathElements[i].firstChild;
|
||||||
|
if (mathElements[i].tagName == "SPAN") {
|
||||||
|
window.katex.render(texText.data, mathElements[i], {
|
||||||
|
displayMode: mathElements[i].classList.contains('display'),
|
||||||
|
throwOnError: false,
|
||||||
|
macros: macros,
|
||||||
|
fleqn: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (id === null || id.startsWith('sec-')) {
|
||||||
|
// Special case sections, only their first couple elements
|
||||||
|
const container = document.createElement("div");
|
||||||
|
if (note.children && note.children.length > 2) {
|
||||||
|
for (let i = 0; i < 2; i++) {
|
||||||
|
container.appendChild(note.children[i].cloneNode(true));
|
||||||
|
}
|
||||||
|
typesetMath(container);
|
||||||
|
return container.innerHTML
|
||||||
|
} else {
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Remove any anchor links if they are present
|
||||||
|
const anchorLink = note.querySelector('a.anchorjs-link');
|
||||||
|
if (anchorLink) {
|
||||||
|
anchorLink.remove();
|
||||||
|
}
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (var i=0; i<xrefs.length; i++) {
|
||||||
|
const xref = xrefs[i];
|
||||||
|
tippyHover(xref, undefined, function(instance) {
|
||||||
|
instance.disable();
|
||||||
|
let url = xref.getAttribute('href');
|
||||||
|
let hash = undefined;
|
||||||
|
if (url.startsWith('#')) {
|
||||||
|
hash = url;
|
||||||
|
} else {
|
||||||
|
try { hash = new URL(url).hash; } catch {}
|
||||||
|
}
|
||||||
|
if (hash) {
|
||||||
|
const id = hash.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
try {
|
||||||
|
const html = processXRef(id, note.cloneNode(true));
|
||||||
|
instance.setContent(html);
|
||||||
|
} finally {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch this
|
||||||
|
fetch(url.split('#')[0])
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
const html = processXRef(id, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch a full url (with no hash to target)
|
||||||
|
// This is a special case and we should probably do some content thinning / targeting
|
||||||
|
fetch(url)
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.querySelector('main.content');
|
||||||
|
if (note !== null) {
|
||||||
|
// This should only happen for chapter cross references
|
||||||
|
// (since there is no id in the URL)
|
||||||
|
// remove the first header
|
||||||
|
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
|
||||||
|
note.children[0].remove();
|
||||||
|
}
|
||||||
|
const html = processXRef(null, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, function(instance) {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let selectedAnnoteEl;
|
||||||
|
const selectorForAnnotation = ( cell, annotation) => {
|
||||||
|
let cellAttr = 'data-code-cell="' + cell + '"';
|
||||||
|
let lineAttr = 'data-code-annotation="' + annotation + '"';
|
||||||
|
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
|
||||||
|
return selector;
|
||||||
|
}
|
||||||
|
const selectCodeLines = (annoteEl) => {
|
||||||
|
const doc = window.document;
|
||||||
|
const targetCell = annoteEl.getAttribute("data-target-cell");
|
||||||
|
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
|
||||||
|
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
|
||||||
|
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
|
||||||
|
const lineIds = lines.map((line) => {
|
||||||
|
return targetCell + "-" + line;
|
||||||
|
})
|
||||||
|
let top = null;
|
||||||
|
let height = null;
|
||||||
|
let parent = null;
|
||||||
|
if (lineIds.length > 0) {
|
||||||
|
//compute the position of the single el (top and bottom and make a div)
|
||||||
|
const el = window.document.getElementById(lineIds[0]);
|
||||||
|
top = el.offsetTop;
|
||||||
|
height = el.offsetHeight;
|
||||||
|
parent = el.parentElement.parentElement;
|
||||||
|
if (lineIds.length > 1) {
|
||||||
|
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
|
||||||
|
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
|
||||||
|
height = bottom - top;
|
||||||
|
}
|
||||||
|
if (top !== null && height !== null && parent !== null) {
|
||||||
|
// cook up a div (if necessary) and position it
|
||||||
|
let div = window.document.getElementById("code-annotation-line-highlight");
|
||||||
|
if (div === null) {
|
||||||
|
div = window.document.createElement("div");
|
||||||
|
div.setAttribute("id", "code-annotation-line-highlight");
|
||||||
|
div.style.position = 'absolute';
|
||||||
|
parent.appendChild(div);
|
||||||
|
}
|
||||||
|
div.style.top = top - 2 + "px";
|
||||||
|
div.style.height = height + 4 + "px";
|
||||||
|
div.style.left = 0;
|
||||||
|
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
|
||||||
|
if (gutterDiv === null) {
|
||||||
|
gutterDiv = window.document.createElement("div");
|
||||||
|
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
|
||||||
|
gutterDiv.style.position = 'absolute';
|
||||||
|
const codeCell = window.document.getElementById(targetCell);
|
||||||
|
const gutter = codeCell.querySelector('.code-annotation-gutter');
|
||||||
|
gutter.appendChild(gutterDiv);
|
||||||
|
}
|
||||||
|
gutterDiv.style.top = top - 2 + "px";
|
||||||
|
gutterDiv.style.height = height + 4 + "px";
|
||||||
|
}
|
||||||
|
selectedAnnoteEl = annoteEl;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const unselectCodeLines = () => {
|
||||||
|
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
|
||||||
|
elementsIds.forEach((elId) => {
|
||||||
|
const div = window.document.getElementById(elId);
|
||||||
|
if (div) {
|
||||||
|
div.remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
selectedAnnoteEl = undefined;
|
||||||
|
};
|
||||||
|
// Handle positioning of the toggle
|
||||||
|
window.addEventListener(
|
||||||
|
"resize",
|
||||||
|
throttle(() => {
|
||||||
|
elRect = undefined;
|
||||||
|
if (selectedAnnoteEl) {
|
||||||
|
selectCodeLines(selectedAnnoteEl);
|
||||||
|
}
|
||||||
|
}, 10)
|
||||||
|
);
|
||||||
|
function throttle(fn, ms) {
|
||||||
|
let throttle = false;
|
||||||
|
let timer;
|
||||||
|
return (...args) => {
|
||||||
|
if(!throttle) { // first call gets through
|
||||||
|
fn.apply(this, args);
|
||||||
|
throttle = true;
|
||||||
|
} else { // all the others get throttled
|
||||||
|
if(timer) clearTimeout(timer); // cancel #2
|
||||||
|
timer = setTimeout(() => {
|
||||||
|
fn.apply(this, args);
|
||||||
|
timer = throttle = false;
|
||||||
|
}, ms);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// Attach click handler to the DT
|
||||||
|
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
|
||||||
|
for (const annoteDlNode of annoteDls) {
|
||||||
|
annoteDlNode.addEventListener('click', (event) => {
|
||||||
|
const clickedEl = event.target;
|
||||||
|
if (clickedEl !== selectedAnnoteEl) {
|
||||||
|
unselectCodeLines();
|
||||||
|
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
|
||||||
|
if (activeEl) {
|
||||||
|
activeEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
selectCodeLines(clickedEl);
|
||||||
|
clickedEl.classList.add('code-annotation-active');
|
||||||
|
} else {
|
||||||
|
// Unselect the line
|
||||||
|
unselectCodeLines();
|
||||||
|
clickedEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const findCites = (el) => {
|
||||||
|
const parentEl = el.parentElement;
|
||||||
|
if (parentEl) {
|
||||||
|
const cites = parentEl.dataset.cites;
|
||||||
|
if (cites) {
|
||||||
|
return {
|
||||||
|
el,
|
||||||
|
cites: cites.split(' ')
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return findCites(el.parentElement)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
||||||
|
for (var i=0; i<bibliorefs.length; i++) {
|
||||||
|
const ref = bibliorefs[i];
|
||||||
|
const citeInfo = findCites(ref);
|
||||||
|
if (citeInfo) {
|
||||||
|
tippyHover(citeInfo.el, function() {
|
||||||
|
var popup = window.document.createElement('div');
|
||||||
|
citeInfo.cites.forEach(function(cite) {
|
||||||
|
var citeDiv = window.document.createElement('div');
|
||||||
|
citeDiv.classList.add('hanging-indent');
|
||||||
|
citeDiv.classList.add('csl-entry');
|
||||||
|
var biblioDiv = window.document.getElementById('ref-' + cite);
|
||||||
|
if (biblioDiv) {
|
||||||
|
citeDiv.innerHTML = biblioDiv.innerHTML;
|
||||||
|
}
|
||||||
|
popup.appendChild(citeDiv);
|
||||||
|
});
|
||||||
|
return popup.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div> <!-- /content -->
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="nav-footer">
|
||||||
|
<div class="nav-footer-left">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="nav-footer-center">
|
||||||
|
<p>Copyright 2023, <a href="https://drwater.rcees.ac.cn">Ming Su</a></p>
|
||||||
|
<div class="toc-actions"><ul><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/edit/main/MS/CL.qmd" class="toc-action"><i class="bi bi-git"></i>Edit this page</a></li><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/blob/main/MS/CL.qmd" class="toc-action"><i class="bi empty"></i>View source</a></li><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/issues/new" class="toc-action"><i class="bi empty"></i>Report an issue</a></li></ul></div></div>
|
||||||
|
<div class="nav-footer-right">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body></html>
|
||||||
BIN
Binary file not shown.
+638
@@ -0,0 +1,638 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="generator" content="quarto-1.4.480">
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||||||
|
|
||||||
|
|
||||||
|
<title>Version: main - MANUSCRIPT TITLE</title>
|
||||||
|
<style>
|
||||||
|
code{white-space: pre-wrap;}
|
||||||
|
span.smallcaps{font-variant: small-caps;}
|
||||||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
|
ul.task-list{list-style: none;}
|
||||||
|
ul.task-list li input[type="checkbox"] {
|
||||||
|
width: 0.8em;
|
||||||
|
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="../site_libs/quarto-nav/quarto-nav.js"></script>
|
||||||
|
<script src="../site_libs/quarto-nav/headroom.min.js"></script>
|
||||||
|
<script src="../site_libs/clipboard/clipboard.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/autocomplete.umd.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/fuse.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/quarto-search.js"></script>
|
||||||
|
<meta name="quarto:offset" content="../">
|
||||||
|
<script src="../site_libs/quarto-html/quarto.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/popper.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/anchor.min.js"></script>
|
||||||
|
<link href="../site_libs/quarto-html/tippy.css" rel="stylesheet">
|
||||||
|
<link href="../site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
|
||||||
|
<script src="../site_libs/bootstrap/bootstrap.min.js"></script>
|
||||||
|
<link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
|
||||||
|
<link href="../site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
|
||||||
|
<script id="quarto-search-options" type="application/json">{
|
||||||
|
"location": "navbar",
|
||||||
|
"copy-button": false,
|
||||||
|
"collapse-after": 3,
|
||||||
|
"panel-placement": "end",
|
||||||
|
"type": "overlay",
|
||||||
|
"limit": 50,
|
||||||
|
"keyboard-shortcut": [
|
||||||
|
"f",
|
||||||
|
"/",
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
"show-item-context": false,
|
||||||
|
"language": {
|
||||||
|
"search-no-results-text": "No results",
|
||||||
|
"search-matching-documents-text": "matching documents",
|
||||||
|
"search-copy-link-title": "Copy link to search",
|
||||||
|
"search-hide-matches-text": "Hide additional matches",
|
||||||
|
"search-more-match-text": "more match in this document",
|
||||||
|
"search-more-matches-text": "more matches in this document",
|
||||||
|
"search-clear-button-title": "Clear",
|
||||||
|
"search-detached-cancel-button-title": "Cancel",
|
||||||
|
"search-submit-button-title": "Submit",
|
||||||
|
"search-label": "Search"
|
||||||
|
}
|
||||||
|
}</script>
|
||||||
|
<script type="application/json" class="js-hypothesis-config">
|
||||||
|
{
|
||||||
|
"theme": "clean",
|
||||||
|
"openSidebar": false
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script async="" src="https://hypothes.is/embed.js"></script>
|
||||||
|
<script>
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (_event) {
|
||||||
|
document.body.classList.add('hypothesis-enabled');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="_extensions/inst/css/style.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="nav-fixed">
|
||||||
|
|
||||||
|
<div id="quarto-search-results"></div>
|
||||||
|
<header id="quarto-header" class="headroom fixed-top">
|
||||||
|
<nav class="navbar navbar-expand-lg " data-bs-theme="dark">
|
||||||
|
<div class="navbar-container container-fluid">
|
||||||
|
<div class="navbar-brand-container mx-auto">
|
||||||
|
<a class="navbar-brand" href="../index.html">
|
||||||
|
<span class="navbar-title">Version: main</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id="quarto-search" class="" title="Search"></div>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarCollapse">
|
||||||
|
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html"> <i class="bi bi-house" role="img">
|
||||||
|
</i>
|
||||||
|
<span class="menu-text">Home</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/MS.html">
|
||||||
|
<span class="menu-text">Manuscript</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/SM.html">
|
||||||
|
<span class="menu-text">Supplementary Materials</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/RN.html">
|
||||||
|
<span class="menu-text">Revision Notes</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../SD/index.html">
|
||||||
|
<span class="menu-text">Slides</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-other" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<span class="menu-text">Other</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-other">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/HL.html">
|
||||||
|
<span class="dropdown-text">Highlights</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/CL.html">
|
||||||
|
<span class="dropdown-text">Cover Letter</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/AC.html">
|
||||||
|
<span class="dropdown-text">Author Credits</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../TC/index.html">
|
||||||
|
<span class="dropdown-text">Trackchanges</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../RP/index.html">
|
||||||
|
<span class="dropdown-text">Report</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../AC/index.html">
|
||||||
|
<span class="dropdown-text">Acomplishment</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-bi-git" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="bi bi-git" role="img">
|
||||||
|
</i>
|
||||||
|
<span class="menu-text"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-bi-git">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/_edit/">
|
||||||
|
<span class="dropdown-text">Edit</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/issues">
|
||||||
|
<span class="dropdown-text">Issue</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div> <!-- /navcollapse -->
|
||||||
|
<div class="quarto-navbar-tools">
|
||||||
|
<a href="" class="quarto-reader-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleReader(); return false;" title="Toggle reader mode">
|
||||||
|
<div class="quarto-reader-toggle-btn">
|
||||||
|
<i class="bi"></i>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div> <!-- /container-fluid -->
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<!-- content -->
|
||||||
|
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
|
||||||
|
<!-- sidebar -->
|
||||||
|
<!-- margin-sidebar -->
|
||||||
|
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
|
||||||
|
|
||||||
|
<div class="quarto-alternate-formats"><h2>Other Formats</h2><ul><li><a href="GA.docx"><i class="bi bi-file-word"></i>MS Word</a></li><li><a href="GA.pdf"><i class="bi bi-file-pdf"></i>PDF (elsevier)</a></li></ul></div></div>
|
||||||
|
<!-- main -->
|
||||||
|
<main class="content" id="quarto-document-content">
|
||||||
|
|
||||||
|
<header id="title-block-header" class="quarto-title-block default">
|
||||||
|
<div class="quarto-title">
|
||||||
|
<h1 class="title">MANUSCRIPT TITLE</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="quarto-title-meta">
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div class="quarto-title-meta-heading">Published</div>
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="date">Friday, November 10, 2023</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<p><span>Ming Su<sup>1,2</sup>, </span><span>Min Yang<sup>1,2,*</sup></span></p>
|
||||||
|
<p>1. State Key Laboratory of Environmental Aquatic Chemistry, Research Center for Eco-Environmental Sciences, Chinese Academy of Sciences, P.O. Box 2871, Beijing, 100085.</p>
|
||||||
|
<p>2. University of Chinese Academy of Sciences, Beijing, 100049.</p>
|
||||||
|
<p>* Corresponding Author: Min Yang (<a href="mailto:yangmin@rcees.ac.cn">yangmin@rcees.ac.cn</a>)</p>
|
||||||
|
<section id="graphical-abstract" class="level1 unnumbered">
|
||||||
|
<h1 class="unnumbered">Graphical Abstract</h1>
|
||||||
|
<!--  -->
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</main> <!-- /main -->
|
||||||
|
<script id="quarto-html-after-body" type="application/javascript">
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (event) {
|
||||||
|
const toggleBodyColorMode = (bsSheetEl) => {
|
||||||
|
const mode = bsSheetEl.getAttribute("data-mode");
|
||||||
|
const bodyEl = window.document.querySelector("body");
|
||||||
|
if (mode === "dark") {
|
||||||
|
bodyEl.classList.add("quarto-dark");
|
||||||
|
bodyEl.classList.remove("quarto-light");
|
||||||
|
} else {
|
||||||
|
bodyEl.classList.add("quarto-light");
|
||||||
|
bodyEl.classList.remove("quarto-dark");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const toggleBodyColorPrimary = () => {
|
||||||
|
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
||||||
|
if (bsSheetEl) {
|
||||||
|
toggleBodyColorMode(bsSheetEl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toggleBodyColorPrimary();
|
||||||
|
const icon = "";
|
||||||
|
const anchorJS = new window.AnchorJS();
|
||||||
|
anchorJS.options = {
|
||||||
|
placement: 'right',
|
||||||
|
icon: icon
|
||||||
|
};
|
||||||
|
anchorJS.add('.anchored');
|
||||||
|
const isCodeAnnotation = (el) => {
|
||||||
|
for (const clz of el.classList) {
|
||||||
|
if (clz.startsWith('code-annotation-')) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const clipboard = new window.ClipboardJS('.code-copy-button', {
|
||||||
|
text: function(trigger) {
|
||||||
|
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
||||||
|
for (const childEl of codeEl.children) {
|
||||||
|
if (isCodeAnnotation(childEl)) {
|
||||||
|
childEl.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return codeEl.innerText;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
clipboard.on('success', function(e) {
|
||||||
|
// button target
|
||||||
|
const button = e.trigger;
|
||||||
|
// don't keep focus
|
||||||
|
button.blur();
|
||||||
|
// flash "checked"
|
||||||
|
button.classList.add('code-copy-button-checked');
|
||||||
|
var currentTitle = button.getAttribute("title");
|
||||||
|
button.setAttribute("title", "Copied!");
|
||||||
|
let tooltip;
|
||||||
|
if (window.bootstrap) {
|
||||||
|
button.setAttribute("data-bs-toggle", "tooltip");
|
||||||
|
button.setAttribute("data-bs-placement", "left");
|
||||||
|
button.setAttribute("data-bs-title", "Copied!");
|
||||||
|
tooltip = new bootstrap.Tooltip(button,
|
||||||
|
{ trigger: "manual",
|
||||||
|
customClass: "code-copy-button-tooltip",
|
||||||
|
offset: [0, -8]});
|
||||||
|
tooltip.show();
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
|
if (tooltip) {
|
||||||
|
tooltip.hide();
|
||||||
|
button.removeAttribute("data-bs-title");
|
||||||
|
button.removeAttribute("data-bs-toggle");
|
||||||
|
button.removeAttribute("data-bs-placement");
|
||||||
|
}
|
||||||
|
button.setAttribute("title", currentTitle);
|
||||||
|
button.classList.remove('code-copy-button-checked');
|
||||||
|
}, 1000);
|
||||||
|
// clear code selection
|
||||||
|
e.clearSelection();
|
||||||
|
});
|
||||||
|
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
|
||||||
|
const config = {
|
||||||
|
allowHTML: true,
|
||||||
|
maxWidth: 500,
|
||||||
|
delay: 100,
|
||||||
|
arrow: false,
|
||||||
|
appendTo: function(el) {
|
||||||
|
return el.parentElement;
|
||||||
|
},
|
||||||
|
interactive: true,
|
||||||
|
interactiveBorder: 10,
|
||||||
|
theme: 'quarto',
|
||||||
|
placement: 'bottom-start',
|
||||||
|
};
|
||||||
|
if (contentFn) {
|
||||||
|
config.content = contentFn;
|
||||||
|
}
|
||||||
|
if (onTriggerFn) {
|
||||||
|
config.onTrigger = onTriggerFn;
|
||||||
|
}
|
||||||
|
if (onUntriggerFn) {
|
||||||
|
config.onUntrigger = onUntriggerFn;
|
||||||
|
}
|
||||||
|
window.tippy(el, config);
|
||||||
|
}
|
||||||
|
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
||||||
|
for (var i=0; i<noterefs.length; i++) {
|
||||||
|
const ref = noterefs[i];
|
||||||
|
tippyHover(ref, function() {
|
||||||
|
// use id or data attribute instead here
|
||||||
|
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
||||||
|
try { href = new URL(href).hash; } catch {}
|
||||||
|
const id = href.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
return note.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const xrefs = window.document.querySelectorAll('a.quarto-xref');
|
||||||
|
const processXRef = (id, note) => {
|
||||||
|
// Strip column container classes
|
||||||
|
const stripColumnClz = (el) => {
|
||||||
|
el.classList.remove("page-full", "page-columns");
|
||||||
|
if (el.children) {
|
||||||
|
for (const child of el.children) {
|
||||||
|
stripColumnClz(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stripColumnClz(note)
|
||||||
|
const typesetMath = (el) => {
|
||||||
|
if (window.MathJax) {
|
||||||
|
// MathJax Typeset
|
||||||
|
window.MathJax.typeset([el]);
|
||||||
|
} else if (window.katex) {
|
||||||
|
// KaTeX Render
|
||||||
|
var mathElements = el.getElementsByClassName("math");
|
||||||
|
var macros = [];
|
||||||
|
for (var i = 0; i < mathElements.length; i++) {
|
||||||
|
var texText = mathElements[i].firstChild;
|
||||||
|
if (mathElements[i].tagName == "SPAN") {
|
||||||
|
window.katex.render(texText.data, mathElements[i], {
|
||||||
|
displayMode: mathElements[i].classList.contains('display'),
|
||||||
|
throwOnError: false,
|
||||||
|
macros: macros,
|
||||||
|
fleqn: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (id === null || id.startsWith('sec-')) {
|
||||||
|
// Special case sections, only their first couple elements
|
||||||
|
const container = document.createElement("div");
|
||||||
|
if (note.children && note.children.length > 2) {
|
||||||
|
for (let i = 0; i < 2; i++) {
|
||||||
|
container.appendChild(note.children[i].cloneNode(true));
|
||||||
|
}
|
||||||
|
typesetMath(container);
|
||||||
|
return container.innerHTML
|
||||||
|
} else {
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Remove any anchor links if they are present
|
||||||
|
const anchorLink = note.querySelector('a.anchorjs-link');
|
||||||
|
if (anchorLink) {
|
||||||
|
anchorLink.remove();
|
||||||
|
}
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (var i=0; i<xrefs.length; i++) {
|
||||||
|
const xref = xrefs[i];
|
||||||
|
tippyHover(xref, undefined, function(instance) {
|
||||||
|
instance.disable();
|
||||||
|
let url = xref.getAttribute('href');
|
||||||
|
let hash = undefined;
|
||||||
|
if (url.startsWith('#')) {
|
||||||
|
hash = url;
|
||||||
|
} else {
|
||||||
|
try { hash = new URL(url).hash; } catch {}
|
||||||
|
}
|
||||||
|
if (hash) {
|
||||||
|
const id = hash.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
try {
|
||||||
|
const html = processXRef(id, note.cloneNode(true));
|
||||||
|
instance.setContent(html);
|
||||||
|
} finally {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch this
|
||||||
|
fetch(url.split('#')[0])
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
const html = processXRef(id, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch a full url (with no hash to target)
|
||||||
|
// This is a special case and we should probably do some content thinning / targeting
|
||||||
|
fetch(url)
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.querySelector('main.content');
|
||||||
|
if (note !== null) {
|
||||||
|
// This should only happen for chapter cross references
|
||||||
|
// (since there is no id in the URL)
|
||||||
|
// remove the first header
|
||||||
|
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
|
||||||
|
note.children[0].remove();
|
||||||
|
}
|
||||||
|
const html = processXRef(null, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, function(instance) {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let selectedAnnoteEl;
|
||||||
|
const selectorForAnnotation = ( cell, annotation) => {
|
||||||
|
let cellAttr = 'data-code-cell="' + cell + '"';
|
||||||
|
let lineAttr = 'data-code-annotation="' + annotation + '"';
|
||||||
|
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
|
||||||
|
return selector;
|
||||||
|
}
|
||||||
|
const selectCodeLines = (annoteEl) => {
|
||||||
|
const doc = window.document;
|
||||||
|
const targetCell = annoteEl.getAttribute("data-target-cell");
|
||||||
|
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
|
||||||
|
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
|
||||||
|
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
|
||||||
|
const lineIds = lines.map((line) => {
|
||||||
|
return targetCell + "-" + line;
|
||||||
|
})
|
||||||
|
let top = null;
|
||||||
|
let height = null;
|
||||||
|
let parent = null;
|
||||||
|
if (lineIds.length > 0) {
|
||||||
|
//compute the position of the single el (top and bottom and make a div)
|
||||||
|
const el = window.document.getElementById(lineIds[0]);
|
||||||
|
top = el.offsetTop;
|
||||||
|
height = el.offsetHeight;
|
||||||
|
parent = el.parentElement.parentElement;
|
||||||
|
if (lineIds.length > 1) {
|
||||||
|
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
|
||||||
|
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
|
||||||
|
height = bottom - top;
|
||||||
|
}
|
||||||
|
if (top !== null && height !== null && parent !== null) {
|
||||||
|
// cook up a div (if necessary) and position it
|
||||||
|
let div = window.document.getElementById("code-annotation-line-highlight");
|
||||||
|
if (div === null) {
|
||||||
|
div = window.document.createElement("div");
|
||||||
|
div.setAttribute("id", "code-annotation-line-highlight");
|
||||||
|
div.style.position = 'absolute';
|
||||||
|
parent.appendChild(div);
|
||||||
|
}
|
||||||
|
div.style.top = top - 2 + "px";
|
||||||
|
div.style.height = height + 4 + "px";
|
||||||
|
div.style.left = 0;
|
||||||
|
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
|
||||||
|
if (gutterDiv === null) {
|
||||||
|
gutterDiv = window.document.createElement("div");
|
||||||
|
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
|
||||||
|
gutterDiv.style.position = 'absolute';
|
||||||
|
const codeCell = window.document.getElementById(targetCell);
|
||||||
|
const gutter = codeCell.querySelector('.code-annotation-gutter');
|
||||||
|
gutter.appendChild(gutterDiv);
|
||||||
|
}
|
||||||
|
gutterDiv.style.top = top - 2 + "px";
|
||||||
|
gutterDiv.style.height = height + 4 + "px";
|
||||||
|
}
|
||||||
|
selectedAnnoteEl = annoteEl;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const unselectCodeLines = () => {
|
||||||
|
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
|
||||||
|
elementsIds.forEach((elId) => {
|
||||||
|
const div = window.document.getElementById(elId);
|
||||||
|
if (div) {
|
||||||
|
div.remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
selectedAnnoteEl = undefined;
|
||||||
|
};
|
||||||
|
// Handle positioning of the toggle
|
||||||
|
window.addEventListener(
|
||||||
|
"resize",
|
||||||
|
throttle(() => {
|
||||||
|
elRect = undefined;
|
||||||
|
if (selectedAnnoteEl) {
|
||||||
|
selectCodeLines(selectedAnnoteEl);
|
||||||
|
}
|
||||||
|
}, 10)
|
||||||
|
);
|
||||||
|
function throttle(fn, ms) {
|
||||||
|
let throttle = false;
|
||||||
|
let timer;
|
||||||
|
return (...args) => {
|
||||||
|
if(!throttle) { // first call gets through
|
||||||
|
fn.apply(this, args);
|
||||||
|
throttle = true;
|
||||||
|
} else { // all the others get throttled
|
||||||
|
if(timer) clearTimeout(timer); // cancel #2
|
||||||
|
timer = setTimeout(() => {
|
||||||
|
fn.apply(this, args);
|
||||||
|
timer = throttle = false;
|
||||||
|
}, ms);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// Attach click handler to the DT
|
||||||
|
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
|
||||||
|
for (const annoteDlNode of annoteDls) {
|
||||||
|
annoteDlNode.addEventListener('click', (event) => {
|
||||||
|
const clickedEl = event.target;
|
||||||
|
if (clickedEl !== selectedAnnoteEl) {
|
||||||
|
unselectCodeLines();
|
||||||
|
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
|
||||||
|
if (activeEl) {
|
||||||
|
activeEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
selectCodeLines(clickedEl);
|
||||||
|
clickedEl.classList.add('code-annotation-active');
|
||||||
|
} else {
|
||||||
|
// Unselect the line
|
||||||
|
unselectCodeLines();
|
||||||
|
clickedEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const findCites = (el) => {
|
||||||
|
const parentEl = el.parentElement;
|
||||||
|
if (parentEl) {
|
||||||
|
const cites = parentEl.dataset.cites;
|
||||||
|
if (cites) {
|
||||||
|
return {
|
||||||
|
el,
|
||||||
|
cites: cites.split(' ')
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return findCites(el.parentElement)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
||||||
|
for (var i=0; i<bibliorefs.length; i++) {
|
||||||
|
const ref = bibliorefs[i];
|
||||||
|
const citeInfo = findCites(ref);
|
||||||
|
if (citeInfo) {
|
||||||
|
tippyHover(citeInfo.el, function() {
|
||||||
|
var popup = window.document.createElement('div');
|
||||||
|
citeInfo.cites.forEach(function(cite) {
|
||||||
|
var citeDiv = window.document.createElement('div');
|
||||||
|
citeDiv.classList.add('hanging-indent');
|
||||||
|
citeDiv.classList.add('csl-entry');
|
||||||
|
var biblioDiv = window.document.getElementById('ref-' + cite);
|
||||||
|
if (biblioDiv) {
|
||||||
|
citeDiv.innerHTML = biblioDiv.innerHTML;
|
||||||
|
}
|
||||||
|
popup.appendChild(citeDiv);
|
||||||
|
});
|
||||||
|
return popup.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div> <!-- /content -->
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="nav-footer">
|
||||||
|
<div class="nav-footer-left">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="nav-footer-center">
|
||||||
|
<p>Copyright 2023, <a href="https://drwater.rcees.ac.cn">Ming Su</a></p>
|
||||||
|
<div class="toc-actions"><ul><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/edit/main/MS/GA.qmd" class="toc-action"><i class="bi bi-git"></i>Edit this page</a></li><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/blob/main/MS/GA.qmd" class="toc-action"><i class="bi empty"></i>View source</a></li><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/issues/new" class="toc-action"><i class="bi empty"></i>Report an issue</a></li></ul></div></div>
|
||||||
|
<div class="nav-footer-right">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body></html>
|
||||||
BIN
Binary file not shown.
+643
@@ -0,0 +1,643 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="generator" content="quarto-1.4.480">
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||||||
|
|
||||||
|
|
||||||
|
<title>Version: main - MANUSCRIPT TITLE</title>
|
||||||
|
<style>
|
||||||
|
code{white-space: pre-wrap;}
|
||||||
|
span.smallcaps{font-variant: small-caps;}
|
||||||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
|
ul.task-list{list-style: none;}
|
||||||
|
ul.task-list li input[type="checkbox"] {
|
||||||
|
width: 0.8em;
|
||||||
|
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="../site_libs/quarto-nav/quarto-nav.js"></script>
|
||||||
|
<script src="../site_libs/quarto-nav/headroom.min.js"></script>
|
||||||
|
<script src="../site_libs/clipboard/clipboard.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/autocomplete.umd.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/fuse.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/quarto-search.js"></script>
|
||||||
|
<meta name="quarto:offset" content="../">
|
||||||
|
<script src="../site_libs/quarto-html/quarto.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/popper.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/anchor.min.js"></script>
|
||||||
|
<link href="../site_libs/quarto-html/tippy.css" rel="stylesheet">
|
||||||
|
<link href="../site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
|
||||||
|
<script src="../site_libs/bootstrap/bootstrap.min.js"></script>
|
||||||
|
<link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
|
||||||
|
<link href="../site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
|
||||||
|
<script id="quarto-search-options" type="application/json">{
|
||||||
|
"location": "navbar",
|
||||||
|
"copy-button": false,
|
||||||
|
"collapse-after": 3,
|
||||||
|
"panel-placement": "end",
|
||||||
|
"type": "overlay",
|
||||||
|
"limit": 50,
|
||||||
|
"keyboard-shortcut": [
|
||||||
|
"f",
|
||||||
|
"/",
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
"show-item-context": false,
|
||||||
|
"language": {
|
||||||
|
"search-no-results-text": "No results",
|
||||||
|
"search-matching-documents-text": "matching documents",
|
||||||
|
"search-copy-link-title": "Copy link to search",
|
||||||
|
"search-hide-matches-text": "Hide additional matches",
|
||||||
|
"search-more-match-text": "more match in this document",
|
||||||
|
"search-more-matches-text": "more matches in this document",
|
||||||
|
"search-clear-button-title": "Clear",
|
||||||
|
"search-detached-cancel-button-title": "Cancel",
|
||||||
|
"search-submit-button-title": "Submit",
|
||||||
|
"search-label": "Search"
|
||||||
|
}
|
||||||
|
}</script>
|
||||||
|
<script type="application/json" class="js-hypothesis-config">
|
||||||
|
{
|
||||||
|
"theme": "clean",
|
||||||
|
"openSidebar": false
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script async="" src="https://hypothes.is/embed.js"></script>
|
||||||
|
<script>
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (_event) {
|
||||||
|
document.body.classList.add('hypothesis-enabled');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="_extensions/inst/css/style.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="nav-fixed">
|
||||||
|
|
||||||
|
<div id="quarto-search-results"></div>
|
||||||
|
<header id="quarto-header" class="headroom fixed-top">
|
||||||
|
<nav class="navbar navbar-expand-lg " data-bs-theme="dark">
|
||||||
|
<div class="navbar-container container-fluid">
|
||||||
|
<div class="navbar-brand-container mx-auto">
|
||||||
|
<a class="navbar-brand" href="../index.html">
|
||||||
|
<span class="navbar-title">Version: main</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id="quarto-search" class="" title="Search"></div>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarCollapse">
|
||||||
|
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html"> <i class="bi bi-house" role="img">
|
||||||
|
</i>
|
||||||
|
<span class="menu-text">Home</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/MS.html">
|
||||||
|
<span class="menu-text">Manuscript</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/SM.html">
|
||||||
|
<span class="menu-text">Supplementary Materials</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/RN.html">
|
||||||
|
<span class="menu-text">Revision Notes</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../SD/index.html">
|
||||||
|
<span class="menu-text">Slides</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-other" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<span class="menu-text">Other</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-other">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/HL.html">
|
||||||
|
<span class="dropdown-text">Highlights</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/CL.html">
|
||||||
|
<span class="dropdown-text">Cover Letter</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/AC.html">
|
||||||
|
<span class="dropdown-text">Author Credits</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../TC/index.html">
|
||||||
|
<span class="dropdown-text">Trackchanges</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../RP/index.html">
|
||||||
|
<span class="dropdown-text">Report</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../AC/index.html">
|
||||||
|
<span class="dropdown-text">Acomplishment</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-bi-git" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="bi bi-git" role="img">
|
||||||
|
</i>
|
||||||
|
<span class="menu-text"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-bi-git">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/_edit/">
|
||||||
|
<span class="dropdown-text">Edit</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/issues">
|
||||||
|
<span class="dropdown-text">Issue</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div> <!-- /navcollapse -->
|
||||||
|
<div class="quarto-navbar-tools">
|
||||||
|
<a href="" class="quarto-reader-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleReader(); return false;" title="Toggle reader mode">
|
||||||
|
<div class="quarto-reader-toggle-btn">
|
||||||
|
<i class="bi"></i>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div> <!-- /container-fluid -->
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<!-- content -->
|
||||||
|
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
|
||||||
|
<!-- sidebar -->
|
||||||
|
<!-- margin-sidebar -->
|
||||||
|
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
|
||||||
|
|
||||||
|
<div class="quarto-alternate-formats"><h2>Other Formats</h2><ul><li><a href="HL.docx"><i class="bi bi-file-word"></i>MS Word</a></li><li><a href="HL.pdf"><i class="bi bi-file-pdf"></i>PDF (elsevier)</a></li></ul></div></div>
|
||||||
|
<!-- main -->
|
||||||
|
<main class="content" id="quarto-document-content">
|
||||||
|
|
||||||
|
<header id="title-block-header" class="quarto-title-block default">
|
||||||
|
<div class="quarto-title">
|
||||||
|
<h1 class="title">MANUSCRIPT TITLE</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="quarto-title-meta">
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div class="quarto-title-meta-heading">Published</div>
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="date">Friday, November 10, 2023</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<p><span>Ming Su<sup>1,2</sup>, </span><span>Min Yang<sup>1,2,*</sup></span></p>
|
||||||
|
<p>1. State Key Laboratory of Environmental Aquatic Chemistry, Research Center for Eco-Environmental Sciences, Chinese Academy of Sciences, P.O. Box 2871, Beijing, 100085.</p>
|
||||||
|
<p>2. University of Chinese Academy of Sciences, Beijing, 100049.</p>
|
||||||
|
<p>* Corresponding Author: Min Yang (<a href="mailto:yangmin@rcees.ac.cn">yangmin@rcees.ac.cn</a>)</p>
|
||||||
|
<section id="highlights" class="level1 unnumbered">
|
||||||
|
<h1 class="unnumbered">Highlights</h1>
|
||||||
|
<ul>
|
||||||
|
<li>A comprehensive model was contructed to evaluate the risk of odor occurrences</li>
|
||||||
|
<li>Turbidity distribution determine underwater light and MIB-producing <em>Planktothrix</em></li>
|
||||||
|
<li>Increasing flowrate leading high turbidity that can control <em>Planktothrix</em> and MIB</li>
|
||||||
|
<li>Odor control based on flow regulation in source water is “green” and fundamental</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</main> <!-- /main -->
|
||||||
|
<script id="quarto-html-after-body" type="application/javascript">
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (event) {
|
||||||
|
const toggleBodyColorMode = (bsSheetEl) => {
|
||||||
|
const mode = bsSheetEl.getAttribute("data-mode");
|
||||||
|
const bodyEl = window.document.querySelector("body");
|
||||||
|
if (mode === "dark") {
|
||||||
|
bodyEl.classList.add("quarto-dark");
|
||||||
|
bodyEl.classList.remove("quarto-light");
|
||||||
|
} else {
|
||||||
|
bodyEl.classList.add("quarto-light");
|
||||||
|
bodyEl.classList.remove("quarto-dark");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const toggleBodyColorPrimary = () => {
|
||||||
|
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
||||||
|
if (bsSheetEl) {
|
||||||
|
toggleBodyColorMode(bsSheetEl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toggleBodyColorPrimary();
|
||||||
|
const icon = "";
|
||||||
|
const anchorJS = new window.AnchorJS();
|
||||||
|
anchorJS.options = {
|
||||||
|
placement: 'right',
|
||||||
|
icon: icon
|
||||||
|
};
|
||||||
|
anchorJS.add('.anchored');
|
||||||
|
const isCodeAnnotation = (el) => {
|
||||||
|
for (const clz of el.classList) {
|
||||||
|
if (clz.startsWith('code-annotation-')) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const clipboard = new window.ClipboardJS('.code-copy-button', {
|
||||||
|
text: function(trigger) {
|
||||||
|
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
||||||
|
for (const childEl of codeEl.children) {
|
||||||
|
if (isCodeAnnotation(childEl)) {
|
||||||
|
childEl.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return codeEl.innerText;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
clipboard.on('success', function(e) {
|
||||||
|
// button target
|
||||||
|
const button = e.trigger;
|
||||||
|
// don't keep focus
|
||||||
|
button.blur();
|
||||||
|
// flash "checked"
|
||||||
|
button.classList.add('code-copy-button-checked');
|
||||||
|
var currentTitle = button.getAttribute("title");
|
||||||
|
button.setAttribute("title", "Copied!");
|
||||||
|
let tooltip;
|
||||||
|
if (window.bootstrap) {
|
||||||
|
button.setAttribute("data-bs-toggle", "tooltip");
|
||||||
|
button.setAttribute("data-bs-placement", "left");
|
||||||
|
button.setAttribute("data-bs-title", "Copied!");
|
||||||
|
tooltip = new bootstrap.Tooltip(button,
|
||||||
|
{ trigger: "manual",
|
||||||
|
customClass: "code-copy-button-tooltip",
|
||||||
|
offset: [0, -8]});
|
||||||
|
tooltip.show();
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
|
if (tooltip) {
|
||||||
|
tooltip.hide();
|
||||||
|
button.removeAttribute("data-bs-title");
|
||||||
|
button.removeAttribute("data-bs-toggle");
|
||||||
|
button.removeAttribute("data-bs-placement");
|
||||||
|
}
|
||||||
|
button.setAttribute("title", currentTitle);
|
||||||
|
button.classList.remove('code-copy-button-checked');
|
||||||
|
}, 1000);
|
||||||
|
// clear code selection
|
||||||
|
e.clearSelection();
|
||||||
|
});
|
||||||
|
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
|
||||||
|
const config = {
|
||||||
|
allowHTML: true,
|
||||||
|
maxWidth: 500,
|
||||||
|
delay: 100,
|
||||||
|
arrow: false,
|
||||||
|
appendTo: function(el) {
|
||||||
|
return el.parentElement;
|
||||||
|
},
|
||||||
|
interactive: true,
|
||||||
|
interactiveBorder: 10,
|
||||||
|
theme: 'quarto',
|
||||||
|
placement: 'bottom-start',
|
||||||
|
};
|
||||||
|
if (contentFn) {
|
||||||
|
config.content = contentFn;
|
||||||
|
}
|
||||||
|
if (onTriggerFn) {
|
||||||
|
config.onTrigger = onTriggerFn;
|
||||||
|
}
|
||||||
|
if (onUntriggerFn) {
|
||||||
|
config.onUntrigger = onUntriggerFn;
|
||||||
|
}
|
||||||
|
window.tippy(el, config);
|
||||||
|
}
|
||||||
|
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
||||||
|
for (var i=0; i<noterefs.length; i++) {
|
||||||
|
const ref = noterefs[i];
|
||||||
|
tippyHover(ref, function() {
|
||||||
|
// use id or data attribute instead here
|
||||||
|
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
||||||
|
try { href = new URL(href).hash; } catch {}
|
||||||
|
const id = href.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
return note.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const xrefs = window.document.querySelectorAll('a.quarto-xref');
|
||||||
|
const processXRef = (id, note) => {
|
||||||
|
// Strip column container classes
|
||||||
|
const stripColumnClz = (el) => {
|
||||||
|
el.classList.remove("page-full", "page-columns");
|
||||||
|
if (el.children) {
|
||||||
|
for (const child of el.children) {
|
||||||
|
stripColumnClz(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stripColumnClz(note)
|
||||||
|
const typesetMath = (el) => {
|
||||||
|
if (window.MathJax) {
|
||||||
|
// MathJax Typeset
|
||||||
|
window.MathJax.typeset([el]);
|
||||||
|
} else if (window.katex) {
|
||||||
|
// KaTeX Render
|
||||||
|
var mathElements = el.getElementsByClassName("math");
|
||||||
|
var macros = [];
|
||||||
|
for (var i = 0; i < mathElements.length; i++) {
|
||||||
|
var texText = mathElements[i].firstChild;
|
||||||
|
if (mathElements[i].tagName == "SPAN") {
|
||||||
|
window.katex.render(texText.data, mathElements[i], {
|
||||||
|
displayMode: mathElements[i].classList.contains('display'),
|
||||||
|
throwOnError: false,
|
||||||
|
macros: macros,
|
||||||
|
fleqn: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (id === null || id.startsWith('sec-')) {
|
||||||
|
// Special case sections, only their first couple elements
|
||||||
|
const container = document.createElement("div");
|
||||||
|
if (note.children && note.children.length > 2) {
|
||||||
|
for (let i = 0; i < 2; i++) {
|
||||||
|
container.appendChild(note.children[i].cloneNode(true));
|
||||||
|
}
|
||||||
|
typesetMath(container);
|
||||||
|
return container.innerHTML
|
||||||
|
} else {
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Remove any anchor links if they are present
|
||||||
|
const anchorLink = note.querySelector('a.anchorjs-link');
|
||||||
|
if (anchorLink) {
|
||||||
|
anchorLink.remove();
|
||||||
|
}
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (var i=0; i<xrefs.length; i++) {
|
||||||
|
const xref = xrefs[i];
|
||||||
|
tippyHover(xref, undefined, function(instance) {
|
||||||
|
instance.disable();
|
||||||
|
let url = xref.getAttribute('href');
|
||||||
|
let hash = undefined;
|
||||||
|
if (url.startsWith('#')) {
|
||||||
|
hash = url;
|
||||||
|
} else {
|
||||||
|
try { hash = new URL(url).hash; } catch {}
|
||||||
|
}
|
||||||
|
if (hash) {
|
||||||
|
const id = hash.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
try {
|
||||||
|
const html = processXRef(id, note.cloneNode(true));
|
||||||
|
instance.setContent(html);
|
||||||
|
} finally {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch this
|
||||||
|
fetch(url.split('#')[0])
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
const html = processXRef(id, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch a full url (with no hash to target)
|
||||||
|
// This is a special case and we should probably do some content thinning / targeting
|
||||||
|
fetch(url)
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.querySelector('main.content');
|
||||||
|
if (note !== null) {
|
||||||
|
// This should only happen for chapter cross references
|
||||||
|
// (since there is no id in the URL)
|
||||||
|
// remove the first header
|
||||||
|
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
|
||||||
|
note.children[0].remove();
|
||||||
|
}
|
||||||
|
const html = processXRef(null, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, function(instance) {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let selectedAnnoteEl;
|
||||||
|
const selectorForAnnotation = ( cell, annotation) => {
|
||||||
|
let cellAttr = 'data-code-cell="' + cell + '"';
|
||||||
|
let lineAttr = 'data-code-annotation="' + annotation + '"';
|
||||||
|
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
|
||||||
|
return selector;
|
||||||
|
}
|
||||||
|
const selectCodeLines = (annoteEl) => {
|
||||||
|
const doc = window.document;
|
||||||
|
const targetCell = annoteEl.getAttribute("data-target-cell");
|
||||||
|
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
|
||||||
|
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
|
||||||
|
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
|
||||||
|
const lineIds = lines.map((line) => {
|
||||||
|
return targetCell + "-" + line;
|
||||||
|
})
|
||||||
|
let top = null;
|
||||||
|
let height = null;
|
||||||
|
let parent = null;
|
||||||
|
if (lineIds.length > 0) {
|
||||||
|
//compute the position of the single el (top and bottom and make a div)
|
||||||
|
const el = window.document.getElementById(lineIds[0]);
|
||||||
|
top = el.offsetTop;
|
||||||
|
height = el.offsetHeight;
|
||||||
|
parent = el.parentElement.parentElement;
|
||||||
|
if (lineIds.length > 1) {
|
||||||
|
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
|
||||||
|
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
|
||||||
|
height = bottom - top;
|
||||||
|
}
|
||||||
|
if (top !== null && height !== null && parent !== null) {
|
||||||
|
// cook up a div (if necessary) and position it
|
||||||
|
let div = window.document.getElementById("code-annotation-line-highlight");
|
||||||
|
if (div === null) {
|
||||||
|
div = window.document.createElement("div");
|
||||||
|
div.setAttribute("id", "code-annotation-line-highlight");
|
||||||
|
div.style.position = 'absolute';
|
||||||
|
parent.appendChild(div);
|
||||||
|
}
|
||||||
|
div.style.top = top - 2 + "px";
|
||||||
|
div.style.height = height + 4 + "px";
|
||||||
|
div.style.left = 0;
|
||||||
|
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
|
||||||
|
if (gutterDiv === null) {
|
||||||
|
gutterDiv = window.document.createElement("div");
|
||||||
|
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
|
||||||
|
gutterDiv.style.position = 'absolute';
|
||||||
|
const codeCell = window.document.getElementById(targetCell);
|
||||||
|
const gutter = codeCell.querySelector('.code-annotation-gutter');
|
||||||
|
gutter.appendChild(gutterDiv);
|
||||||
|
}
|
||||||
|
gutterDiv.style.top = top - 2 + "px";
|
||||||
|
gutterDiv.style.height = height + 4 + "px";
|
||||||
|
}
|
||||||
|
selectedAnnoteEl = annoteEl;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const unselectCodeLines = () => {
|
||||||
|
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
|
||||||
|
elementsIds.forEach((elId) => {
|
||||||
|
const div = window.document.getElementById(elId);
|
||||||
|
if (div) {
|
||||||
|
div.remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
selectedAnnoteEl = undefined;
|
||||||
|
};
|
||||||
|
// Handle positioning of the toggle
|
||||||
|
window.addEventListener(
|
||||||
|
"resize",
|
||||||
|
throttle(() => {
|
||||||
|
elRect = undefined;
|
||||||
|
if (selectedAnnoteEl) {
|
||||||
|
selectCodeLines(selectedAnnoteEl);
|
||||||
|
}
|
||||||
|
}, 10)
|
||||||
|
);
|
||||||
|
function throttle(fn, ms) {
|
||||||
|
let throttle = false;
|
||||||
|
let timer;
|
||||||
|
return (...args) => {
|
||||||
|
if(!throttle) { // first call gets through
|
||||||
|
fn.apply(this, args);
|
||||||
|
throttle = true;
|
||||||
|
} else { // all the others get throttled
|
||||||
|
if(timer) clearTimeout(timer); // cancel #2
|
||||||
|
timer = setTimeout(() => {
|
||||||
|
fn.apply(this, args);
|
||||||
|
timer = throttle = false;
|
||||||
|
}, ms);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// Attach click handler to the DT
|
||||||
|
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
|
||||||
|
for (const annoteDlNode of annoteDls) {
|
||||||
|
annoteDlNode.addEventListener('click', (event) => {
|
||||||
|
const clickedEl = event.target;
|
||||||
|
if (clickedEl !== selectedAnnoteEl) {
|
||||||
|
unselectCodeLines();
|
||||||
|
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
|
||||||
|
if (activeEl) {
|
||||||
|
activeEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
selectCodeLines(clickedEl);
|
||||||
|
clickedEl.classList.add('code-annotation-active');
|
||||||
|
} else {
|
||||||
|
// Unselect the line
|
||||||
|
unselectCodeLines();
|
||||||
|
clickedEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const findCites = (el) => {
|
||||||
|
const parentEl = el.parentElement;
|
||||||
|
if (parentEl) {
|
||||||
|
const cites = parentEl.dataset.cites;
|
||||||
|
if (cites) {
|
||||||
|
return {
|
||||||
|
el,
|
||||||
|
cites: cites.split(' ')
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return findCites(el.parentElement)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
||||||
|
for (var i=0; i<bibliorefs.length; i++) {
|
||||||
|
const ref = bibliorefs[i];
|
||||||
|
const citeInfo = findCites(ref);
|
||||||
|
if (citeInfo) {
|
||||||
|
tippyHover(citeInfo.el, function() {
|
||||||
|
var popup = window.document.createElement('div');
|
||||||
|
citeInfo.cites.forEach(function(cite) {
|
||||||
|
var citeDiv = window.document.createElement('div');
|
||||||
|
citeDiv.classList.add('hanging-indent');
|
||||||
|
citeDiv.classList.add('csl-entry');
|
||||||
|
var biblioDiv = window.document.getElementById('ref-' + cite);
|
||||||
|
if (biblioDiv) {
|
||||||
|
citeDiv.innerHTML = biblioDiv.innerHTML;
|
||||||
|
}
|
||||||
|
popup.appendChild(citeDiv);
|
||||||
|
});
|
||||||
|
return popup.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div> <!-- /content -->
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="nav-footer">
|
||||||
|
<div class="nav-footer-left">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="nav-footer-center">
|
||||||
|
<p>Copyright 2023, <a href="https://drwater.rcees.ac.cn">Ming Su</a></p>
|
||||||
|
<div class="toc-actions"><ul><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/edit/main/MS/HL.qmd" class="toc-action"><i class="bi bi-git"></i>Edit this page</a></li><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/blob/main/MS/HL.qmd" class="toc-action"><i class="bi empty"></i>View source</a></li><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/issues/new" class="toc-action"><i class="bi empty"></i>Report an issue</a></li></ul></div></div>
|
||||||
|
<div class="nav-footer-right">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body></html>
|
||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
+680
@@ -0,0 +1,680 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="generator" content="quarto-1.4.480">
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||||||
|
|
||||||
|
<meta name="keywords" content="KEYWORD1, KEYWORD2, KEYWORD3">
|
||||||
|
|
||||||
|
<title>Version: main - MANUSCRIPT TITLE</title>
|
||||||
|
<style>
|
||||||
|
code{white-space: pre-wrap;}
|
||||||
|
span.smallcaps{font-variant: small-caps;}
|
||||||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
|
ul.task-list{list-style: none;}
|
||||||
|
ul.task-list li input[type="checkbox"] {
|
||||||
|
width: 0.8em;
|
||||||
|
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="../site_libs/quarto-nav/quarto-nav.js"></script>
|
||||||
|
<script src="../site_libs/quarto-nav/headroom.min.js"></script>
|
||||||
|
<script src="../site_libs/clipboard/clipboard.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/autocomplete.umd.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/fuse.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/quarto-search.js"></script>
|
||||||
|
<meta name="quarto:offset" content="../">
|
||||||
|
<script src="../site_libs/quarto-html/quarto.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/popper.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/anchor.min.js"></script>
|
||||||
|
<link href="../site_libs/quarto-html/tippy.css" rel="stylesheet">
|
||||||
|
<link href="../site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
|
||||||
|
<script src="../site_libs/bootstrap/bootstrap.min.js"></script>
|
||||||
|
<link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
|
||||||
|
<link href="../site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
|
||||||
|
<script id="quarto-search-options" type="application/json">{
|
||||||
|
"location": "navbar",
|
||||||
|
"copy-button": false,
|
||||||
|
"collapse-after": 3,
|
||||||
|
"panel-placement": "end",
|
||||||
|
"type": "overlay",
|
||||||
|
"limit": 50,
|
||||||
|
"keyboard-shortcut": [
|
||||||
|
"f",
|
||||||
|
"/",
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
"show-item-context": false,
|
||||||
|
"language": {
|
||||||
|
"search-no-results-text": "No results",
|
||||||
|
"search-matching-documents-text": "matching documents",
|
||||||
|
"search-copy-link-title": "Copy link to search",
|
||||||
|
"search-hide-matches-text": "Hide additional matches",
|
||||||
|
"search-more-match-text": "more match in this document",
|
||||||
|
"search-more-matches-text": "more matches in this document",
|
||||||
|
"search-clear-button-title": "Clear",
|
||||||
|
"search-detached-cancel-button-title": "Cancel",
|
||||||
|
"search-submit-button-title": "Submit",
|
||||||
|
"search-label": "Search"
|
||||||
|
}
|
||||||
|
}</script>
|
||||||
|
<script type="application/json" class="js-hypothesis-config">
|
||||||
|
{
|
||||||
|
"theme": "clean",
|
||||||
|
"openSidebar": false
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script async="" src="https://hypothes.is/embed.js"></script>
|
||||||
|
<script>
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (_event) {
|
||||||
|
document.body.classList.add('hypothesis-enabled');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="_extensions/inst/css/style.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="nav-fixed">
|
||||||
|
|
||||||
|
<div id="quarto-search-results"></div>
|
||||||
|
<header id="quarto-header" class="headroom fixed-top">
|
||||||
|
<nav class="navbar navbar-expand-lg " data-bs-theme="dark">
|
||||||
|
<div class="navbar-container container-fluid">
|
||||||
|
<div class="navbar-brand-container mx-auto">
|
||||||
|
<a class="navbar-brand" href="../index.html">
|
||||||
|
<span class="navbar-title">Version: main</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id="quarto-search" class="" title="Search"></div>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarCollapse">
|
||||||
|
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html"> <i class="bi bi-house" role="img">
|
||||||
|
</i>
|
||||||
|
<span class="menu-text">Home</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" href="../MS/MS.html" aria-current="page">
|
||||||
|
<span class="menu-text">Manuscript</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/SM.html">
|
||||||
|
<span class="menu-text">Supplementary Materials</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/RN.html">
|
||||||
|
<span class="menu-text">Revision Notes</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../SD/index.html">
|
||||||
|
<span class="menu-text">Slides</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-other" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<span class="menu-text">Other</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-other">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/HL.html">
|
||||||
|
<span class="dropdown-text">Highlights</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/CL.html">
|
||||||
|
<span class="dropdown-text">Cover Letter</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/AC.html">
|
||||||
|
<span class="dropdown-text">Author Credits</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../TC/index.html">
|
||||||
|
<span class="dropdown-text">Trackchanges</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../RP/index.html">
|
||||||
|
<span class="dropdown-text">Report</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../AC/index.html">
|
||||||
|
<span class="dropdown-text">Acomplishment</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-bi-git" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="bi bi-git" role="img">
|
||||||
|
</i>
|
||||||
|
<span class="menu-text"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-bi-git">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/_edit/">
|
||||||
|
<span class="dropdown-text">Edit</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/issues">
|
||||||
|
<span class="dropdown-text">Issue</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div> <!-- /navcollapse -->
|
||||||
|
<div class="quarto-navbar-tools">
|
||||||
|
<a href="" class="quarto-reader-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleReader(); return false;" title="Toggle reader mode">
|
||||||
|
<div class="quarto-reader-toggle-btn">
|
||||||
|
<i class="bi"></i>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div> <!-- /container-fluid -->
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<!-- content -->
|
||||||
|
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
|
||||||
|
<!-- sidebar -->
|
||||||
|
<!-- margin-sidebar -->
|
||||||
|
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
|
||||||
|
|
||||||
|
<div class="quarto-alternate-formats"><h2>Other Formats</h2><ul><li><a href="MS.epub"><i class="bi bi-file"></i>ePub</a></li><li><a href="MS.docx"><i class="bi bi-file-word"></i>MS Word</a></li><li><a href="MS.pdf"><i class="bi bi-file-pdf"></i>PDF (elsevier)</a></li></ul></div></div>
|
||||||
|
<!-- main -->
|
||||||
|
<main class="content" id="quarto-document-content">
|
||||||
|
|
||||||
|
<header id="title-block-header" class="quarto-title-block default">
|
||||||
|
<div class="quarto-title">
|
||||||
|
<h1 class="title">MANUSCRIPT TITLE</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="quarto-title-meta">
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div class="quarto-title-meta-heading">Published</div>
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="date">Friday, November 10, 2023</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div class="keywords">
|
||||||
|
<div class="block-title">Keywords</div>
|
||||||
|
<p>KEYWORD1, KEYWORD2, KEYWORD3</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<p><span>Ming Su<sup>1,2</sup>, </span><span>Min Yang<sup>1,2,*</sup></span></p>
|
||||||
|
<p>1. State Key Laboratory of Environmental Aquatic Chemistry, Research Center for Eco-Environmental Sciences, Chinese Academy of Sciences, P.O. Box 2871, Beijing, 100085.</p>
|
||||||
|
<p>2. University of Chinese Academy of Sciences, Beijing, 100049.</p>
|
||||||
|
<p>* Corresponding Author: Min Yang (<a href="mailto:yangmin@rcees.ac.cn">yangmin@rcees.ac.cn</a>)</p>
|
||||||
|
<section class="level1">
|
||||||
|
<h1>Abstract</h1>
|
||||||
|
<p>ABSTRACT</p>
|
||||||
|
<p>Keywords: KEYWORD1; KEYWORD2; KEYWORD3.</p>
|
||||||
|
</section>
|
||||||
|
<section id="color-tip" class="level1 unnumbered">
|
||||||
|
<h1 class="unnumbered">Color tip</h1>
|
||||||
|
<ul>
|
||||||
|
<li><span class="del">Something should be deleted</span></li>
|
||||||
|
<li><span class="bad">Something bad</span></li>
|
||||||
|
<li><span class="good">Something good</span></li>
|
||||||
|
<li><span class="todo">Something todo</span></li>
|
||||||
|
<li><span class="add">Something should be added</span></li>
|
||||||
|
<li><span class="com">I am a comment</span></li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
<section id="introduction" class="level1">
|
||||||
|
<h1>Introduction</h1>
|
||||||
|
<p>Blabla. <span class="clab" data-options="r1q0101">Bla blaBla blaBla blaBla blaBla bla Bla bla.</span></p>
|
||||||
|
</section>
|
||||||
|
<section id="materials-and-methods" class="level1">
|
||||||
|
<h1>Materials and methods</h1>
|
||||||
|
</section>
|
||||||
|
<section id="results" class="level1">
|
||||||
|
<h1>Results</h1>
|
||||||
|
</section>
|
||||||
|
<section id="discussion" class="level1">
|
||||||
|
<h1>Discussion</h1>
|
||||||
|
</section>
|
||||||
|
<section id="conclusions" class="level1">
|
||||||
|
<h1>Conclusions</h1>
|
||||||
|
</section>
|
||||||
|
<section id="acknowledgements" class="level1 unnumbered">
|
||||||
|
<h1 class="unnumbered">Acknowledgements</h1>
|
||||||
|
<p>This work was financially supported by the National Natural Science Foundation of China (52030002, 51878649), and Youth Innovation Promotion Association CAS.</p>
|
||||||
|
</section>
|
||||||
|
<section id="references" class="level1 unnumbered">
|
||||||
|
<h1 class="unnumbered">References</h1>
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</main> <!-- /main -->
|
||||||
|
<script id="quarto-html-after-body" type="application/javascript">
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (event) {
|
||||||
|
const toggleBodyColorMode = (bsSheetEl) => {
|
||||||
|
const mode = bsSheetEl.getAttribute("data-mode");
|
||||||
|
const bodyEl = window.document.querySelector("body");
|
||||||
|
if (mode === "dark") {
|
||||||
|
bodyEl.classList.add("quarto-dark");
|
||||||
|
bodyEl.classList.remove("quarto-light");
|
||||||
|
} else {
|
||||||
|
bodyEl.classList.add("quarto-light");
|
||||||
|
bodyEl.classList.remove("quarto-dark");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const toggleBodyColorPrimary = () => {
|
||||||
|
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
||||||
|
if (bsSheetEl) {
|
||||||
|
toggleBodyColorMode(bsSheetEl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toggleBodyColorPrimary();
|
||||||
|
const icon = "";
|
||||||
|
const anchorJS = new window.AnchorJS();
|
||||||
|
anchorJS.options = {
|
||||||
|
placement: 'right',
|
||||||
|
icon: icon
|
||||||
|
};
|
||||||
|
anchorJS.add('.anchored');
|
||||||
|
const isCodeAnnotation = (el) => {
|
||||||
|
for (const clz of el.classList) {
|
||||||
|
if (clz.startsWith('code-annotation-')) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const clipboard = new window.ClipboardJS('.code-copy-button', {
|
||||||
|
text: function(trigger) {
|
||||||
|
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
||||||
|
for (const childEl of codeEl.children) {
|
||||||
|
if (isCodeAnnotation(childEl)) {
|
||||||
|
childEl.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return codeEl.innerText;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
clipboard.on('success', function(e) {
|
||||||
|
// button target
|
||||||
|
const button = e.trigger;
|
||||||
|
// don't keep focus
|
||||||
|
button.blur();
|
||||||
|
// flash "checked"
|
||||||
|
button.classList.add('code-copy-button-checked');
|
||||||
|
var currentTitle = button.getAttribute("title");
|
||||||
|
button.setAttribute("title", "Copied!");
|
||||||
|
let tooltip;
|
||||||
|
if (window.bootstrap) {
|
||||||
|
button.setAttribute("data-bs-toggle", "tooltip");
|
||||||
|
button.setAttribute("data-bs-placement", "left");
|
||||||
|
button.setAttribute("data-bs-title", "Copied!");
|
||||||
|
tooltip = new bootstrap.Tooltip(button,
|
||||||
|
{ trigger: "manual",
|
||||||
|
customClass: "code-copy-button-tooltip",
|
||||||
|
offset: [0, -8]});
|
||||||
|
tooltip.show();
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
|
if (tooltip) {
|
||||||
|
tooltip.hide();
|
||||||
|
button.removeAttribute("data-bs-title");
|
||||||
|
button.removeAttribute("data-bs-toggle");
|
||||||
|
button.removeAttribute("data-bs-placement");
|
||||||
|
}
|
||||||
|
button.setAttribute("title", currentTitle);
|
||||||
|
button.classList.remove('code-copy-button-checked');
|
||||||
|
}, 1000);
|
||||||
|
// clear code selection
|
||||||
|
e.clearSelection();
|
||||||
|
});
|
||||||
|
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
|
||||||
|
const config = {
|
||||||
|
allowHTML: true,
|
||||||
|
maxWidth: 500,
|
||||||
|
delay: 100,
|
||||||
|
arrow: false,
|
||||||
|
appendTo: function(el) {
|
||||||
|
return el.parentElement;
|
||||||
|
},
|
||||||
|
interactive: true,
|
||||||
|
interactiveBorder: 10,
|
||||||
|
theme: 'quarto',
|
||||||
|
placement: 'bottom-start',
|
||||||
|
};
|
||||||
|
if (contentFn) {
|
||||||
|
config.content = contentFn;
|
||||||
|
}
|
||||||
|
if (onTriggerFn) {
|
||||||
|
config.onTrigger = onTriggerFn;
|
||||||
|
}
|
||||||
|
if (onUntriggerFn) {
|
||||||
|
config.onUntrigger = onUntriggerFn;
|
||||||
|
}
|
||||||
|
window.tippy(el, config);
|
||||||
|
}
|
||||||
|
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
||||||
|
for (var i=0; i<noterefs.length; i++) {
|
||||||
|
const ref = noterefs[i];
|
||||||
|
tippyHover(ref, function() {
|
||||||
|
// use id or data attribute instead here
|
||||||
|
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
||||||
|
try { href = new URL(href).hash; } catch {}
|
||||||
|
const id = href.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
return note.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const xrefs = window.document.querySelectorAll('a.quarto-xref');
|
||||||
|
const processXRef = (id, note) => {
|
||||||
|
// Strip column container classes
|
||||||
|
const stripColumnClz = (el) => {
|
||||||
|
el.classList.remove("page-full", "page-columns");
|
||||||
|
if (el.children) {
|
||||||
|
for (const child of el.children) {
|
||||||
|
stripColumnClz(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stripColumnClz(note)
|
||||||
|
const typesetMath = (el) => {
|
||||||
|
if (window.MathJax) {
|
||||||
|
// MathJax Typeset
|
||||||
|
window.MathJax.typeset([el]);
|
||||||
|
} else if (window.katex) {
|
||||||
|
// KaTeX Render
|
||||||
|
var mathElements = el.getElementsByClassName("math");
|
||||||
|
var macros = [];
|
||||||
|
for (var i = 0; i < mathElements.length; i++) {
|
||||||
|
var texText = mathElements[i].firstChild;
|
||||||
|
if (mathElements[i].tagName == "SPAN") {
|
||||||
|
window.katex.render(texText.data, mathElements[i], {
|
||||||
|
displayMode: mathElements[i].classList.contains('display'),
|
||||||
|
throwOnError: false,
|
||||||
|
macros: macros,
|
||||||
|
fleqn: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (id === null || id.startsWith('sec-')) {
|
||||||
|
// Special case sections, only their first couple elements
|
||||||
|
const container = document.createElement("div");
|
||||||
|
if (note.children && note.children.length > 2) {
|
||||||
|
for (let i = 0; i < 2; i++) {
|
||||||
|
container.appendChild(note.children[i].cloneNode(true));
|
||||||
|
}
|
||||||
|
typesetMath(container);
|
||||||
|
return container.innerHTML
|
||||||
|
} else {
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Remove any anchor links if they are present
|
||||||
|
const anchorLink = note.querySelector('a.anchorjs-link');
|
||||||
|
if (anchorLink) {
|
||||||
|
anchorLink.remove();
|
||||||
|
}
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (var i=0; i<xrefs.length; i++) {
|
||||||
|
const xref = xrefs[i];
|
||||||
|
tippyHover(xref, undefined, function(instance) {
|
||||||
|
instance.disable();
|
||||||
|
let url = xref.getAttribute('href');
|
||||||
|
let hash = undefined;
|
||||||
|
if (url.startsWith('#')) {
|
||||||
|
hash = url;
|
||||||
|
} else {
|
||||||
|
try { hash = new URL(url).hash; } catch {}
|
||||||
|
}
|
||||||
|
if (hash) {
|
||||||
|
const id = hash.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
try {
|
||||||
|
const html = processXRef(id, note.cloneNode(true));
|
||||||
|
instance.setContent(html);
|
||||||
|
} finally {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch this
|
||||||
|
fetch(url.split('#')[0])
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
const html = processXRef(id, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch a full url (with no hash to target)
|
||||||
|
// This is a special case and we should probably do some content thinning / targeting
|
||||||
|
fetch(url)
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.querySelector('main.content');
|
||||||
|
if (note !== null) {
|
||||||
|
// This should only happen for chapter cross references
|
||||||
|
// (since there is no id in the URL)
|
||||||
|
// remove the first header
|
||||||
|
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
|
||||||
|
note.children[0].remove();
|
||||||
|
}
|
||||||
|
const html = processXRef(null, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, function(instance) {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let selectedAnnoteEl;
|
||||||
|
const selectorForAnnotation = ( cell, annotation) => {
|
||||||
|
let cellAttr = 'data-code-cell="' + cell + '"';
|
||||||
|
let lineAttr = 'data-code-annotation="' + annotation + '"';
|
||||||
|
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
|
||||||
|
return selector;
|
||||||
|
}
|
||||||
|
const selectCodeLines = (annoteEl) => {
|
||||||
|
const doc = window.document;
|
||||||
|
const targetCell = annoteEl.getAttribute("data-target-cell");
|
||||||
|
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
|
||||||
|
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
|
||||||
|
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
|
||||||
|
const lineIds = lines.map((line) => {
|
||||||
|
return targetCell + "-" + line;
|
||||||
|
})
|
||||||
|
let top = null;
|
||||||
|
let height = null;
|
||||||
|
let parent = null;
|
||||||
|
if (lineIds.length > 0) {
|
||||||
|
//compute the position of the single el (top and bottom and make a div)
|
||||||
|
const el = window.document.getElementById(lineIds[0]);
|
||||||
|
top = el.offsetTop;
|
||||||
|
height = el.offsetHeight;
|
||||||
|
parent = el.parentElement.parentElement;
|
||||||
|
if (lineIds.length > 1) {
|
||||||
|
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
|
||||||
|
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
|
||||||
|
height = bottom - top;
|
||||||
|
}
|
||||||
|
if (top !== null && height !== null && parent !== null) {
|
||||||
|
// cook up a div (if necessary) and position it
|
||||||
|
let div = window.document.getElementById("code-annotation-line-highlight");
|
||||||
|
if (div === null) {
|
||||||
|
div = window.document.createElement("div");
|
||||||
|
div.setAttribute("id", "code-annotation-line-highlight");
|
||||||
|
div.style.position = 'absolute';
|
||||||
|
parent.appendChild(div);
|
||||||
|
}
|
||||||
|
div.style.top = top - 2 + "px";
|
||||||
|
div.style.height = height + 4 + "px";
|
||||||
|
div.style.left = 0;
|
||||||
|
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
|
||||||
|
if (gutterDiv === null) {
|
||||||
|
gutterDiv = window.document.createElement("div");
|
||||||
|
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
|
||||||
|
gutterDiv.style.position = 'absolute';
|
||||||
|
const codeCell = window.document.getElementById(targetCell);
|
||||||
|
const gutter = codeCell.querySelector('.code-annotation-gutter');
|
||||||
|
gutter.appendChild(gutterDiv);
|
||||||
|
}
|
||||||
|
gutterDiv.style.top = top - 2 + "px";
|
||||||
|
gutterDiv.style.height = height + 4 + "px";
|
||||||
|
}
|
||||||
|
selectedAnnoteEl = annoteEl;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const unselectCodeLines = () => {
|
||||||
|
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
|
||||||
|
elementsIds.forEach((elId) => {
|
||||||
|
const div = window.document.getElementById(elId);
|
||||||
|
if (div) {
|
||||||
|
div.remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
selectedAnnoteEl = undefined;
|
||||||
|
};
|
||||||
|
// Handle positioning of the toggle
|
||||||
|
window.addEventListener(
|
||||||
|
"resize",
|
||||||
|
throttle(() => {
|
||||||
|
elRect = undefined;
|
||||||
|
if (selectedAnnoteEl) {
|
||||||
|
selectCodeLines(selectedAnnoteEl);
|
||||||
|
}
|
||||||
|
}, 10)
|
||||||
|
);
|
||||||
|
function throttle(fn, ms) {
|
||||||
|
let throttle = false;
|
||||||
|
let timer;
|
||||||
|
return (...args) => {
|
||||||
|
if(!throttle) { // first call gets through
|
||||||
|
fn.apply(this, args);
|
||||||
|
throttle = true;
|
||||||
|
} else { // all the others get throttled
|
||||||
|
if(timer) clearTimeout(timer); // cancel #2
|
||||||
|
timer = setTimeout(() => {
|
||||||
|
fn.apply(this, args);
|
||||||
|
timer = throttle = false;
|
||||||
|
}, ms);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// Attach click handler to the DT
|
||||||
|
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
|
||||||
|
for (const annoteDlNode of annoteDls) {
|
||||||
|
annoteDlNode.addEventListener('click', (event) => {
|
||||||
|
const clickedEl = event.target;
|
||||||
|
if (clickedEl !== selectedAnnoteEl) {
|
||||||
|
unselectCodeLines();
|
||||||
|
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
|
||||||
|
if (activeEl) {
|
||||||
|
activeEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
selectCodeLines(clickedEl);
|
||||||
|
clickedEl.classList.add('code-annotation-active');
|
||||||
|
} else {
|
||||||
|
// Unselect the line
|
||||||
|
unselectCodeLines();
|
||||||
|
clickedEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const findCites = (el) => {
|
||||||
|
const parentEl = el.parentElement;
|
||||||
|
if (parentEl) {
|
||||||
|
const cites = parentEl.dataset.cites;
|
||||||
|
if (cites) {
|
||||||
|
return {
|
||||||
|
el,
|
||||||
|
cites: cites.split(' ')
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return findCites(el.parentElement)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
||||||
|
for (var i=0; i<bibliorefs.length; i++) {
|
||||||
|
const ref = bibliorefs[i];
|
||||||
|
const citeInfo = findCites(ref);
|
||||||
|
if (citeInfo) {
|
||||||
|
tippyHover(citeInfo.el, function() {
|
||||||
|
var popup = window.document.createElement('div');
|
||||||
|
citeInfo.cites.forEach(function(cite) {
|
||||||
|
var citeDiv = window.document.createElement('div');
|
||||||
|
citeDiv.classList.add('hanging-indent');
|
||||||
|
citeDiv.classList.add('csl-entry');
|
||||||
|
var biblioDiv = window.document.getElementById('ref-' + cite);
|
||||||
|
if (biblioDiv) {
|
||||||
|
citeDiv.innerHTML = biblioDiv.innerHTML;
|
||||||
|
}
|
||||||
|
popup.appendChild(citeDiv);
|
||||||
|
});
|
||||||
|
return popup.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div> <!-- /content -->
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="nav-footer">
|
||||||
|
<div class="nav-footer-left">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="nav-footer-center">
|
||||||
|
<p>Copyright 2023, <a href="https://drwater.rcees.ac.cn">Ming Su</a></p>
|
||||||
|
<div class="toc-actions"><ul><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/edit/main/MS/MS.qmd" class="toc-action"><i class="bi bi-git"></i>Edit this page</a></li><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/blob/main/MS/MS.qmd" class="toc-action"><i class="bi empty"></i>View source</a></li><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/issues/new" class="toc-action"><i class="bi empty"></i>Report an issue</a></li></ul></div></div>
|
||||||
|
<div class="nav-footer-right">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body></html>
|
||||||
+668
@@ -0,0 +1,668 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="generator" content="quarto-1.4.480" />
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
|
|
||||||
|
|
||||||
|
<title>Version: main – MANUSCRIPT TITLE</title>
|
||||||
|
<style>
|
||||||
|
code{white-space: pre-wrap;}
|
||||||
|
span.smallcaps{font-variant: small-caps;}
|
||||||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
|
ul.task-list{list-style: none;}
|
||||||
|
ul.task-list li input[type="checkbox"] {
|
||||||
|
width: 0.8em;
|
||||||
|
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<!-- htmldependencies:E3FAD763 -->
|
||||||
|
<script id="quarto-search-options" type="application/json">{
|
||||||
|
"location": "navbar",
|
||||||
|
"copy-button": false,
|
||||||
|
"collapse-after": 3,
|
||||||
|
"panel-placement": "end",
|
||||||
|
"type": "overlay",
|
||||||
|
"limit": 50,
|
||||||
|
"keyboard-shortcut": [
|
||||||
|
"f",
|
||||||
|
"/",
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
"show-item-context": false,
|
||||||
|
"language": {
|
||||||
|
"search-no-results-text": "No results",
|
||||||
|
"search-matching-documents-text": "matching documents",
|
||||||
|
"search-copy-link-title": "Copy link to search",
|
||||||
|
"search-hide-matches-text": "Hide additional matches",
|
||||||
|
"search-more-match-text": "more match in this document",
|
||||||
|
"search-more-matches-text": "more matches in this document",
|
||||||
|
"search-clear-button-title": "Clear",
|
||||||
|
"search-detached-cancel-button-title": "Cancel",
|
||||||
|
"search-submit-button-title": "Submit",
|
||||||
|
"search-label": "Search"
|
||||||
|
}
|
||||||
|
}</script>
|
||||||
|
<script type="application/json" class="js-hypothesis-config">
|
||||||
|
{
|
||||||
|
"theme": "clean",
|
||||||
|
"openSidebar": false
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script async src="https://hypothes.is/embed.js"></script>
|
||||||
|
<script>
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (_event) {
|
||||||
|
document.body.classList.add('hypothesis-enabled');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="_extensions/inst/css/style.css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div id="quarto-search-results"></div>
|
||||||
|
<header id="quarto-header" class="headroom fixed-top">
|
||||||
|
<nav class="navbar navbar-expand-lg " data-bs-theme="dark">
|
||||||
|
<div class="navbar-container container-fluid">
|
||||||
|
<div class="navbar-brand-container mx-auto">
|
||||||
|
<a class="navbar-brand" href="/index.html">
|
||||||
|
<span class="navbar-title">Version: main</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id="quarto-search" class="" title="Search"></div>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse"
|
||||||
|
aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"
|
||||||
|
onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarCollapse">
|
||||||
|
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/index.html"> <i
|
||||||
|
class="bi bi-house"
|
||||||
|
role="img"
|
||||||
|
>
|
||||||
|
</i>
|
||||||
|
<span class="menu-text">Home</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/MS/MS.html">
|
||||||
|
<span class="menu-text">Manuscript</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/MS/SM.html">
|
||||||
|
<span class="menu-text">Supplementary Materials</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/MS/RN.html">
|
||||||
|
<span class="menu-text">Revision Notes</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/SD/index.html">
|
||||||
|
<span class="menu-text">Slides</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-other" role="button" data-bs-toggle="dropdown" aria-expanded="false" >
|
||||||
|
<span class="menu-text">Other</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-other">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="/MS/HL.html">
|
||||||
|
<span class="dropdown-text">Highlights</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="/MS/CL.html">
|
||||||
|
<span class="dropdown-text">Cover Letter</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="/MS/AC.html">
|
||||||
|
<span class="dropdown-text">Author Credits</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="/TC/index.html">
|
||||||
|
<span class="dropdown-text">Trackchanges</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="/RP/index.html">
|
||||||
|
<span class="dropdown-text">Report</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="/AC/index.html">
|
||||||
|
<span class="dropdown-text">Acomplishment</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-bi-git" role="button" data-bs-toggle="dropdown" aria-expanded="false" >
|
||||||
|
<i
|
||||||
|
class="bi bi-git"
|
||||||
|
role="img"
|
||||||
|
>
|
||||||
|
</i>
|
||||||
|
<span class="menu-text"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-bi-git">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/_edit/">
|
||||||
|
<span class="dropdown-text">Edit</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/issues">
|
||||||
|
<span class="dropdown-text">Issue</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div> <!-- /navcollapse -->
|
||||||
|
<div class="quarto-navbar-tools">
|
||||||
|
<a href="" class="quarto-reader-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleReader(); return false;" title="Toggle reader mode">
|
||||||
|
<div class="quarto-reader-toggle-btn">
|
||||||
|
<i class="bi"></i>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div> <!-- /container-fluid -->
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<!-- content -->
|
||||||
|
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
|
||||||
|
<!-- sidebar -->
|
||||||
|
<!-- margin-sidebar -->
|
||||||
|
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
|
||||||
|
<div id="quarto-toc-target"></div>
|
||||||
|
</div>
|
||||||
|
<!-- main -->
|
||||||
|
<main class="content" id="quarto-document-content">
|
||||||
|
|
||||||
|
<header id="title-block-header" class="quarto-title-block default">
|
||||||
|
<div class="quarto-title">
|
||||||
|
<h1 class="title">MANUSCRIPT TITLE</h1>
|
||||||
|
<p class="subtitle lead">Revision Note</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="quarto-title-meta">
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div class="quarto-title-meta-heading">Published</div>
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="date">Friday, November 10, 2023</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<p><span>Ming Su<sup>1,2</sup>, </span><span>Min Yang<sup>1,2,*</sup></span></p>
|
||||||
|
<p>1. State Key Laboratory of Environmental Aquatic Chemistry, Research Center for Eco-Environmental Sciences, Chinese Academy of Sciences, P.O. Box 2871, Beijing, 100085.</p>
|
||||||
|
<p>2. University of Chinese Academy of Sciences, Beijing, 100049.</p>
|
||||||
|
<p>* Corresponding Author: Min Yang (<a href="mailto:yangmin@rcees.ac.cn">yangmin@rcees.ac.cn</a>)</p>
|
||||||
|
<section id="response-to-editor" class="level1">
|
||||||
|
<h1>Response to Editor</h1>
|
||||||
|
<blockquote>
|
||||||
|
<ol start="0" type="1">
|
||||||
|
<li>I very much regret to have to tell you that publication in our journal is not recommended. An explanation for this decision is given in the attached review reports (and on https://www.editorialmanager.com/wr/). I hope that the comments contained therein will be of use to you.</li>
|
||||||
|
</ol>
|
||||||
|
</blockquote>
|
||||||
|
<p><strong>Response/Action:</strong></p>
|
||||||
|
<p>Thank you.</p>
|
||||||
|
</section>
|
||||||
|
<section id="reviewer-1" class="level1">
|
||||||
|
<h1>Reviewer #1:</h1>
|
||||||
|
<blockquote>
|
||||||
|
<ol start="0" type="1">
|
||||||
|
<li>COMMENT 1</li>
|
||||||
|
</ol>
|
||||||
|
</blockquote>
|
||||||
|
<p><strong>Response/Action:</strong></p>
|
||||||
|
<p>Thank you very much for your revision. We made changes as shown below.</p>
|
||||||
|
<div class="callout callout-style-simple callout-none no-icon callout-titled">
|
||||||
|
<div class="callout-header d-flex align-content-center">
|
||||||
|
<div class="callout-icon-container">
|
||||||
|
<i class='callout-icon no-icon'></i>
|
||||||
|
</div>
|
||||||
|
<div class="callout-title-container flex-fill">
|
||||||
|
<strong>MS.pdf: Page 1, Line 6–6</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="callout-body-container callout-body">
|
||||||
|
<p>Bla blaBla blaBla blaBla blaBla bla Bla bla.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="quarto-navigation-envelope" class="hidden">
|
||||||
|
<p><span class="hidden" data-render-id="quarto-int-sidebar-title">Version: main</span> <span class="hidden" data-render-id="quarto-int-navbar-title">Version: main</span> <span class="hidden" data-render-id="quarto-int-navbar:Home">Home</span> <span class="hidden" data-render-id="quarto-int-navbar:/index.html">/index.html</span> <span class="hidden" data-render-id="quarto-int-navbar:Manuscript">Manuscript</span> <span class="hidden" data-render-id="quarto-int-navbar:/MS/MS.html">/MS/MS.html</span> <span class="hidden" data-render-id="quarto-int-navbar:Supplementary Materials">Supplementary Materials</span> <span class="hidden" data-render-id="quarto-int-navbar:/MS/SM.html">/MS/SM.html</span> <span class="hidden" data-render-id="quarto-int-navbar:Revision Notes">Revision Notes</span> <span class="hidden" data-render-id="quarto-int-navbar:/MS/RN.html">/MS/RN.html</span> <span class="hidden" data-render-id="quarto-int-navbar:Slides">Slides</span> <span class="hidden" data-render-id="quarto-int-navbar:/SD/index.html">/SD/index.html</span> <span class="hidden" data-render-id="quarto-int-navbar:Other">Other</span> <span class="hidden" data-render-id="quarto-int-navbar:Highlights">Highlights</span> <span class="hidden" data-render-id="quarto-int-navbar:/MS/HL.html">/MS/HL.html</span> <span class="hidden" data-render-id="quarto-int-navbar:Cover Letter">Cover Letter</span> <span class="hidden" data-render-id="quarto-int-navbar:/MS/CL.html">/MS/CL.html</span> <span class="hidden" data-render-id="quarto-int-navbar:Author Credits">Author Credits</span> <span class="hidden" data-render-id="quarto-int-navbar:/MS/AC.html">/MS/AC.html</span> <span class="hidden" data-render-id="quarto-int-navbar:Trackchanges">Trackchanges</span> <span class="hidden" data-render-id="quarto-int-navbar:/TC/index.html">/TC/index.html</span> <span class="hidden" data-render-id="quarto-int-navbar:Report">Report</span> <span class="hidden" data-render-id="quarto-int-navbar:/RP/index.html">/RP/index.html</span> <span class="hidden" data-render-id="quarto-int-navbar:Acomplishment">Acomplishment</span> <span class="hidden" data-render-id="quarto-int-navbar:/AC/index.html">/AC/index.html</span> <span class="hidden" data-render-id="quarto-int-navbar:Edit">Edit</span> <span class="hidden" data-render-id="quarto-int-navbar:https://drwater.rcees.ac.cn/git/manuscript/su2023temp/_edit/">https://drwater.rcees.ac.cn/git/manuscript/su2023temp/_edit/</span> <span class="hidden" data-render-id="quarto-int-navbar:Issue">Issue</span> <span class="hidden" data-render-id="quarto-int-navbar:https://drwater.rcees.ac.cn/git/manuscript/su2023temp/issues">https://drwater.rcees.ac.cn/git/manuscript/su2023temp/issues</span></p>
|
||||||
|
<div class="hidden" data-render-id="footer-center">
|
||||||
|
<p>Copyright 2023, <a href="https://drwater.rcees.ac.cn">Ming Su</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="quarto-meta-markdown" class="hidden">
|
||||||
|
<p><span class="hidden" data-render-id="quarto-metatitle">Version: main - MANUSCRIPT TITLE</span> <span class="hidden" data-render-id="quarto-twittercardtitle">Version: main - MANUSCRIPT TITLE</span> <span class="hidden" data-render-id="quarto-ogcardtitle">Version: main - MANUSCRIPT TITLE</span> <span class="hidden" data-render-id="quarto-metasitename">Version: main</span> <span class="hidden" data-render-id="quarto-twittercarddesc">Revision Note</span> <span class="hidden" data-render-id="quarto-ogcardddesc">Revision Note</span></p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</main> <!-- /main -->
|
||||||
|
<script id = "quarto-html-after-body" type="application/javascript">
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (event) {
|
||||||
|
const toggleBodyColorMode = (bsSheetEl) => {
|
||||||
|
const mode = bsSheetEl.getAttribute("data-mode");
|
||||||
|
const bodyEl = window.document.querySelector("body");
|
||||||
|
if (mode === "dark") {
|
||||||
|
bodyEl.classList.add("quarto-dark");
|
||||||
|
bodyEl.classList.remove("quarto-light");
|
||||||
|
} else {
|
||||||
|
bodyEl.classList.add("quarto-light");
|
||||||
|
bodyEl.classList.remove("quarto-dark");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const toggleBodyColorPrimary = () => {
|
||||||
|
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
||||||
|
if (bsSheetEl) {
|
||||||
|
toggleBodyColorMode(bsSheetEl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toggleBodyColorPrimary();
|
||||||
|
const icon = "";
|
||||||
|
const anchorJS = new window.AnchorJS();
|
||||||
|
anchorJS.options = {
|
||||||
|
placement: 'right',
|
||||||
|
icon: icon
|
||||||
|
};
|
||||||
|
anchorJS.add('.anchored');
|
||||||
|
const isCodeAnnotation = (el) => {
|
||||||
|
for (const clz of el.classList) {
|
||||||
|
if (clz.startsWith('code-annotation-')) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const clipboard = new window.ClipboardJS('.code-copy-button', {
|
||||||
|
text: function(trigger) {
|
||||||
|
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
||||||
|
for (const childEl of codeEl.children) {
|
||||||
|
if (isCodeAnnotation(childEl)) {
|
||||||
|
childEl.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return codeEl.innerText;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
clipboard.on('success', function(e) {
|
||||||
|
// button target
|
||||||
|
const button = e.trigger;
|
||||||
|
// don't keep focus
|
||||||
|
button.blur();
|
||||||
|
// flash "checked"
|
||||||
|
button.classList.add('code-copy-button-checked');
|
||||||
|
var currentTitle = button.getAttribute("title");
|
||||||
|
button.setAttribute("title", "Copied!");
|
||||||
|
let tooltip;
|
||||||
|
if (window.bootstrap) {
|
||||||
|
button.setAttribute("data-bs-toggle", "tooltip");
|
||||||
|
button.setAttribute("data-bs-placement", "left");
|
||||||
|
button.setAttribute("data-bs-title", "Copied!");
|
||||||
|
tooltip = new bootstrap.Tooltip(button,
|
||||||
|
{ trigger: "manual",
|
||||||
|
customClass: "code-copy-button-tooltip",
|
||||||
|
offset: [0, -8]});
|
||||||
|
tooltip.show();
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
|
if (tooltip) {
|
||||||
|
tooltip.hide();
|
||||||
|
button.removeAttribute("data-bs-title");
|
||||||
|
button.removeAttribute("data-bs-toggle");
|
||||||
|
button.removeAttribute("data-bs-placement");
|
||||||
|
}
|
||||||
|
button.setAttribute("title", currentTitle);
|
||||||
|
button.classList.remove('code-copy-button-checked');
|
||||||
|
}, 1000);
|
||||||
|
// clear code selection
|
||||||
|
e.clearSelection();
|
||||||
|
});
|
||||||
|
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
|
||||||
|
const config = {
|
||||||
|
allowHTML: true,
|
||||||
|
maxWidth: 500,
|
||||||
|
delay: 100,
|
||||||
|
arrow: false,
|
||||||
|
appendTo: function(el) {
|
||||||
|
return el.parentElement;
|
||||||
|
},
|
||||||
|
interactive: true,
|
||||||
|
interactiveBorder: 10,
|
||||||
|
theme: 'quarto',
|
||||||
|
placement: 'bottom-start',
|
||||||
|
};
|
||||||
|
if (contentFn) {
|
||||||
|
config.content = contentFn;
|
||||||
|
}
|
||||||
|
if (onTriggerFn) {
|
||||||
|
config.onTrigger = onTriggerFn;
|
||||||
|
}
|
||||||
|
if (onUntriggerFn) {
|
||||||
|
config.onUntrigger = onUntriggerFn;
|
||||||
|
}
|
||||||
|
window.tippy(el, config);
|
||||||
|
}
|
||||||
|
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
||||||
|
for (var i=0; i<noterefs.length; i++) {
|
||||||
|
const ref = noterefs[i];
|
||||||
|
tippyHover(ref, function() {
|
||||||
|
// use id or data attribute instead here
|
||||||
|
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
||||||
|
try { href = new URL(href).hash; } catch {}
|
||||||
|
const id = href.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
return note.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const xrefs = window.document.querySelectorAll('a.quarto-xref');
|
||||||
|
const processXRef = (id, note) => {
|
||||||
|
// Strip column container classes
|
||||||
|
const stripColumnClz = (el) => {
|
||||||
|
el.classList.remove("page-full", "page-columns");
|
||||||
|
if (el.children) {
|
||||||
|
for (const child of el.children) {
|
||||||
|
stripColumnClz(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stripColumnClz(note)
|
||||||
|
const typesetMath = (el) => {
|
||||||
|
if (window.MathJax) {
|
||||||
|
// MathJax Typeset
|
||||||
|
window.MathJax.typeset([el]);
|
||||||
|
} else if (window.katex) {
|
||||||
|
// KaTeX Render
|
||||||
|
var mathElements = el.getElementsByClassName("math");
|
||||||
|
var macros = [];
|
||||||
|
for (var i = 0; i < mathElements.length; i++) {
|
||||||
|
var texText = mathElements[i].firstChild;
|
||||||
|
if (mathElements[i].tagName == "SPAN") {
|
||||||
|
window.katex.render(texText.data, mathElements[i], {
|
||||||
|
displayMode: mathElements[i].classList.contains('display'),
|
||||||
|
throwOnError: false,
|
||||||
|
macros: macros,
|
||||||
|
fleqn: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (id === null || id.startsWith('sec-')) {
|
||||||
|
// Special case sections, only their first couple elements
|
||||||
|
const container = document.createElement("div");
|
||||||
|
if (note.children && note.children.length > 2) {
|
||||||
|
for (let i = 0; i < 2; i++) {
|
||||||
|
container.appendChild(note.children[i].cloneNode(true));
|
||||||
|
}
|
||||||
|
typesetMath(container);
|
||||||
|
return container.innerHTML
|
||||||
|
} else {
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Remove any anchor links if they are present
|
||||||
|
const anchorLink = note.querySelector('a.anchorjs-link');
|
||||||
|
if (anchorLink) {
|
||||||
|
anchorLink.remove();
|
||||||
|
}
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (var i=0; i<xrefs.length; i++) {
|
||||||
|
const xref = xrefs[i];
|
||||||
|
tippyHover(xref, undefined, function(instance) {
|
||||||
|
instance.disable();
|
||||||
|
let url = xref.getAttribute('href');
|
||||||
|
let hash = undefined;
|
||||||
|
if (url.startsWith('#')) {
|
||||||
|
hash = url;
|
||||||
|
} else {
|
||||||
|
try { hash = new URL(url).hash; } catch {}
|
||||||
|
}
|
||||||
|
if (hash) {
|
||||||
|
const id = hash.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
try {
|
||||||
|
const html = processXRef(id, note.cloneNode(true));
|
||||||
|
instance.setContent(html);
|
||||||
|
} finally {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch this
|
||||||
|
fetch(url.split('#')[0])
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
const html = processXRef(id, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch a full url (with no hash to target)
|
||||||
|
// This is a special case and we should probably do some content thinning / targeting
|
||||||
|
fetch(url)
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.querySelector('main.content');
|
||||||
|
if (note !== null) {
|
||||||
|
// This should only happen for chapter cross references
|
||||||
|
// (since there is no id in the URL)
|
||||||
|
// remove the first header
|
||||||
|
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
|
||||||
|
note.children[0].remove();
|
||||||
|
}
|
||||||
|
const html = processXRef(null, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, function(instance) {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let selectedAnnoteEl;
|
||||||
|
const selectorForAnnotation = ( cell, annotation) => {
|
||||||
|
let cellAttr = 'data-code-cell="' + cell + '"';
|
||||||
|
let lineAttr = 'data-code-annotation="' + annotation + '"';
|
||||||
|
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
|
||||||
|
return selector;
|
||||||
|
}
|
||||||
|
const selectCodeLines = (annoteEl) => {
|
||||||
|
const doc = window.document;
|
||||||
|
const targetCell = annoteEl.getAttribute("data-target-cell");
|
||||||
|
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
|
||||||
|
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
|
||||||
|
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
|
||||||
|
const lineIds = lines.map((line) => {
|
||||||
|
return targetCell + "-" + line;
|
||||||
|
})
|
||||||
|
let top = null;
|
||||||
|
let height = null;
|
||||||
|
let parent = null;
|
||||||
|
if (lineIds.length > 0) {
|
||||||
|
//compute the position of the single el (top and bottom and make a div)
|
||||||
|
const el = window.document.getElementById(lineIds[0]);
|
||||||
|
top = el.offsetTop;
|
||||||
|
height = el.offsetHeight;
|
||||||
|
parent = el.parentElement.parentElement;
|
||||||
|
if (lineIds.length > 1) {
|
||||||
|
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
|
||||||
|
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
|
||||||
|
height = bottom - top;
|
||||||
|
}
|
||||||
|
if (top !== null && height !== null && parent !== null) {
|
||||||
|
// cook up a div (if necessary) and position it
|
||||||
|
let div = window.document.getElementById("code-annotation-line-highlight");
|
||||||
|
if (div === null) {
|
||||||
|
div = window.document.createElement("div");
|
||||||
|
div.setAttribute("id", "code-annotation-line-highlight");
|
||||||
|
div.style.position = 'absolute';
|
||||||
|
parent.appendChild(div);
|
||||||
|
}
|
||||||
|
div.style.top = top - 2 + "px";
|
||||||
|
div.style.height = height + 4 + "px";
|
||||||
|
div.style.left = 0;
|
||||||
|
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
|
||||||
|
if (gutterDiv === null) {
|
||||||
|
gutterDiv = window.document.createElement("div");
|
||||||
|
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
|
||||||
|
gutterDiv.style.position = 'absolute';
|
||||||
|
const codeCell = window.document.getElementById(targetCell);
|
||||||
|
const gutter = codeCell.querySelector('.code-annotation-gutter');
|
||||||
|
gutter.appendChild(gutterDiv);
|
||||||
|
}
|
||||||
|
gutterDiv.style.top = top - 2 + "px";
|
||||||
|
gutterDiv.style.height = height + 4 + "px";
|
||||||
|
}
|
||||||
|
selectedAnnoteEl = annoteEl;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const unselectCodeLines = () => {
|
||||||
|
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
|
||||||
|
elementsIds.forEach((elId) => {
|
||||||
|
const div = window.document.getElementById(elId);
|
||||||
|
if (div) {
|
||||||
|
div.remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
selectedAnnoteEl = undefined;
|
||||||
|
};
|
||||||
|
// Handle positioning of the toggle
|
||||||
|
window.addEventListener(
|
||||||
|
"resize",
|
||||||
|
throttle(() => {
|
||||||
|
elRect = undefined;
|
||||||
|
if (selectedAnnoteEl) {
|
||||||
|
selectCodeLines(selectedAnnoteEl);
|
||||||
|
}
|
||||||
|
}, 10)
|
||||||
|
);
|
||||||
|
function throttle(fn, ms) {
|
||||||
|
let throttle = false;
|
||||||
|
let timer;
|
||||||
|
return (...args) => {
|
||||||
|
if(!throttle) { // first call gets through
|
||||||
|
fn.apply(this, args);
|
||||||
|
throttle = true;
|
||||||
|
} else { // all the others get throttled
|
||||||
|
if(timer) clearTimeout(timer); // cancel #2
|
||||||
|
timer = setTimeout(() => {
|
||||||
|
fn.apply(this, args);
|
||||||
|
timer = throttle = false;
|
||||||
|
}, ms);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// Attach click handler to the DT
|
||||||
|
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
|
||||||
|
for (const annoteDlNode of annoteDls) {
|
||||||
|
annoteDlNode.addEventListener('click', (event) => {
|
||||||
|
const clickedEl = event.target;
|
||||||
|
if (clickedEl !== selectedAnnoteEl) {
|
||||||
|
unselectCodeLines();
|
||||||
|
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
|
||||||
|
if (activeEl) {
|
||||||
|
activeEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
selectCodeLines(clickedEl);
|
||||||
|
clickedEl.classList.add('code-annotation-active');
|
||||||
|
} else {
|
||||||
|
// Unselect the line
|
||||||
|
unselectCodeLines();
|
||||||
|
clickedEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const findCites = (el) => {
|
||||||
|
const parentEl = el.parentElement;
|
||||||
|
if (parentEl) {
|
||||||
|
const cites = parentEl.dataset.cites;
|
||||||
|
if (cites) {
|
||||||
|
return {
|
||||||
|
el,
|
||||||
|
cites: cites.split(' ')
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return findCites(el.parentElement)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
||||||
|
for (var i=0; i<bibliorefs.length; i++) {
|
||||||
|
const ref = bibliorefs[i];
|
||||||
|
const citeInfo = findCites(ref);
|
||||||
|
if (citeInfo) {
|
||||||
|
tippyHover(citeInfo.el, function() {
|
||||||
|
var popup = window.document.createElement('div');
|
||||||
|
citeInfo.cites.forEach(function(cite) {
|
||||||
|
var citeDiv = window.document.createElement('div');
|
||||||
|
citeDiv.classList.add('hanging-indent');
|
||||||
|
citeDiv.classList.add('csl-entry');
|
||||||
|
var biblioDiv = window.document.getElementById('ref-' + cite);
|
||||||
|
if (biblioDiv) {
|
||||||
|
citeDiv.innerHTML = biblioDiv.innerHTML;
|
||||||
|
}
|
||||||
|
popup.appendChild(citeDiv);
|
||||||
|
});
|
||||||
|
return popup.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div> <!-- /content -->
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="nav-footer">
|
||||||
|
<div class="nav-footer-left">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="nav-footer-center">
|
||||||
|
<div class='footer-contents'>Copyright 2023, [Ming Su](https://drwater.rcees.ac.cn)</div>
|
||||||
|
</div>
|
||||||
|
<div class="nav-footer-right">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
---
|
||||||
|
subtitle: "Revision Note"
|
||||||
|
msname: MS
|
||||||
|
smname: SM
|
||||||
|
# date: last-modified
|
||||||
|
bibliography: [../BB/Ref.bib, ../BB/localRef.bib]
|
||||||
|
csl: _extensions/inst/tex/elsevier-harvard.csl
|
||||||
|
format:
|
||||||
|
elsevier-html:
|
||||||
|
filters:
|
||||||
|
- author-info-blocks
|
||||||
|
css: _extensions/inst/css/style.css
|
||||||
|
docx:
|
||||||
|
reference-doc: _extensions/inst/word/MS.docx
|
||||||
|
filters:
|
||||||
|
- author-info-blocks
|
||||||
|
elsevier-pdf:
|
||||||
|
number-sections: true
|
||||||
|
classoption: [nopreprintline]
|
||||||
|
include-in-header: "./_extensions/quarto-journals/elsevier/partials/revision.tex"
|
||||||
|
latex-clean: true
|
||||||
|
header-includes:
|
||||||
|
# - \usepackage{threeparttable}
|
||||||
|
# - \usepackage{fontspec}
|
||||||
|
# - \usepackage{endfloat}
|
||||||
|
- \setmainfont{Calibri}
|
||||||
|
- \usepackage[UTF8, scheme=plain]{ctex}
|
||||||
|
# - \usepackage{float}
|
||||||
|
- \usepackage[normalem]{ulem}
|
||||||
|
- \usepackage[doublespacing]{setspace}
|
||||||
|
- \renewcommand{\thetable}{R\arabic{table}}
|
||||||
|
- \renewcommand{\thefigure}{R\arabic{figure}}
|
||||||
|
- \renewcommand{\theequation}{R\arabic{equation}}
|
||||||
|
- \renewcommand{\figurename}{Figure}
|
||||||
|
- \renewcommand{\tablename}{Table}
|
||||||
|
journal:
|
||||||
|
name: {{< meta submitjournal >}}
|
||||||
|
formatting: preprint # preprint | review | doublebind
|
||||||
|
model: 1p
|
||||||
|
cite-style: authoryear
|
||||||
|
---
|
||||||
|
|
||||||
|
```{r}
|
||||||
|
#| include: false
|
||||||
|
#| cache: false
|
||||||
|
lang <- "en"
|
||||||
|
RM <- "F" # global rendermode, L: load pdata; F: fast load pdf
|
||||||
|
isrendering = isTRUE(getOption('knitr.in.progress'))
|
||||||
|
require(lubridate)
|
||||||
|
require(tidyverse)
|
||||||
|
require(patchwork)
|
||||||
|
require(drwateR)
|
||||||
|
require(dwfun)
|
||||||
|
require(rmdify)
|
||||||
|
rmdify::rmd_init()
|
||||||
|
require(langeR)
|
||||||
|
require(dateR)
|
||||||
|
require(uniteR)
|
||||||
|
require(readxl)
|
||||||
|
Palette <- c("#515ee8", "#62e856", "#e86056", "#e8de51", "#0072B2", "#D551C0", "#CC79A7","#56E9AC")
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Response to Editor
|
||||||
|
|
||||||
|
> 0. I very much regret to have to tell you that publication in our journal is not recommended. An explanation for this decision is given in the attached review reports (and on https://www.editorialmanager.com/wr/). I hope that the comments contained therein will be of use to you.
|
||||||
|
|
||||||
|
**Response/Action:**
|
||||||
|
|
||||||
|
Thank you.
|
||||||
|
|
||||||
|
# Reviewer #1:
|
||||||
|
|
||||||
|
> 0. COMMENT 1
|
||||||
|
|
||||||
|
**Response/Action:**
|
||||||
|
|
||||||
|
Thank you very much for your revision. We made changes as shown below.
|
||||||
|
|
||||||
|
`r cref("r1q0101")`
|
||||||
|
|
||||||
|
|
||||||
+687
@@ -0,0 +1,687 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="generator" content="quarto-1.4.480">
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||||||
|
|
||||||
|
<meta name="author" content="Ming Su">
|
||||||
|
<meta name="author" content="Min Yang">
|
||||||
|
<meta name="dcterms.date" content="2023-11-10">
|
||||||
|
|
||||||
|
<title>Version: main - MANUSCRIPT TITLE</title>
|
||||||
|
<style>
|
||||||
|
code{white-space: pre-wrap;}
|
||||||
|
span.smallcaps{font-variant: small-caps;}
|
||||||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
|
ul.task-list{list-style: none;}
|
||||||
|
ul.task-list li input[type="checkbox"] {
|
||||||
|
width: 0.8em;
|
||||||
|
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="../site_libs/quarto-nav/quarto-nav.js"></script>
|
||||||
|
<script src="../site_libs/quarto-nav/headroom.min.js"></script>
|
||||||
|
<script src="../site_libs/clipboard/clipboard.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/autocomplete.umd.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/fuse.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/quarto-search.js"></script>
|
||||||
|
<meta name="quarto:offset" content="../">
|
||||||
|
<script src="../site_libs/quarto-html/quarto.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/popper.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/anchor.min.js"></script>
|
||||||
|
<link href="../site_libs/quarto-html/tippy.css" rel="stylesheet">
|
||||||
|
<link href="../site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
|
||||||
|
<script src="../site_libs/bootstrap/bootstrap.min.js"></script>
|
||||||
|
<link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
|
||||||
|
<link href="../site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
|
||||||
|
<script id="quarto-search-options" type="application/json">{
|
||||||
|
"location": "navbar",
|
||||||
|
"copy-button": false,
|
||||||
|
"collapse-after": 3,
|
||||||
|
"panel-placement": "end",
|
||||||
|
"type": "overlay",
|
||||||
|
"limit": 50,
|
||||||
|
"keyboard-shortcut": [
|
||||||
|
"f",
|
||||||
|
"/",
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
"show-item-context": false,
|
||||||
|
"language": {
|
||||||
|
"search-no-results-text": "No results",
|
||||||
|
"search-matching-documents-text": "matching documents",
|
||||||
|
"search-copy-link-title": "Copy link to search",
|
||||||
|
"search-hide-matches-text": "Hide additional matches",
|
||||||
|
"search-more-match-text": "more match in this document",
|
||||||
|
"search-more-matches-text": "more matches in this document",
|
||||||
|
"search-clear-button-title": "Clear",
|
||||||
|
"search-detached-cancel-button-title": "Cancel",
|
||||||
|
"search-submit-button-title": "Submit",
|
||||||
|
"search-label": "Search"
|
||||||
|
}
|
||||||
|
}</script>
|
||||||
|
<script type="application/json" class="js-hypothesis-config">
|
||||||
|
{
|
||||||
|
"theme": "clean",
|
||||||
|
"openSidebar": false
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script async="" src="https://hypothes.is/embed.js"></script>
|
||||||
|
<script>
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (_event) {
|
||||||
|
document.body.classList.add('hypothesis-enabled');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="../site_libs/quarto-contrib/quarto-project/inst/css/style.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="nav-fixed">
|
||||||
|
|
||||||
|
<div id="quarto-search-results"></div>
|
||||||
|
<header id="quarto-header" class="headroom fixed-top">
|
||||||
|
<nav class="navbar navbar-expand-lg " data-bs-theme="dark">
|
||||||
|
<div class="navbar-container container-fluid">
|
||||||
|
<div class="navbar-brand-container mx-auto">
|
||||||
|
<a class="navbar-brand" href="../index.html">
|
||||||
|
<span class="navbar-title">Version: main</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id="quarto-search" class="" title="Search"></div>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarCollapse">
|
||||||
|
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html"> <i class="bi bi-house" role="img">
|
||||||
|
</i>
|
||||||
|
<span class="menu-text">Home</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/MS.html">
|
||||||
|
<span class="menu-text">Manuscript</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/SM.html">
|
||||||
|
<span class="menu-text">Supplementary Materials</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/RN.html">
|
||||||
|
<span class="menu-text">Revision Notes</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../SD/index.html">
|
||||||
|
<span class="menu-text">Slides</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-other" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<span class="menu-text">Other</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-other">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/HL.html">
|
||||||
|
<span class="dropdown-text">Highlights</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/CL.html">
|
||||||
|
<span class="dropdown-text">Cover Letter</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/AC.html">
|
||||||
|
<span class="dropdown-text">Author Credits</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../TC/index.html">
|
||||||
|
<span class="dropdown-text">Trackchanges</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../RP/index.html">
|
||||||
|
<span class="dropdown-text">Report</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../AC/index.html">
|
||||||
|
<span class="dropdown-text">Acomplishment</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-bi-git" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="bi bi-git" role="img">
|
||||||
|
</i>
|
||||||
|
<span class="menu-text"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-bi-git">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/_edit/">
|
||||||
|
<span class="dropdown-text">Edit</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/issues">
|
||||||
|
<span class="dropdown-text">Issue</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div> <!-- /navcollapse -->
|
||||||
|
<div class="quarto-navbar-tools">
|
||||||
|
<a href="" class="quarto-reader-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleReader(); return false;" title="Toggle reader mode">
|
||||||
|
<div class="quarto-reader-toggle-btn">
|
||||||
|
<i class="bi"></i>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div> <!-- /container-fluid -->
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<!-- content -->
|
||||||
|
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
|
||||||
|
<!-- sidebar -->
|
||||||
|
<!-- margin-sidebar -->
|
||||||
|
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
|
||||||
|
<nav id="TOC" role="doc-toc" class="toc-active">
|
||||||
|
<h2 id="toc-title">On this page</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><a href="#readme" id="toc-readme" class="nav-link active" data-scroll-target="#readme">README</a></li>
|
||||||
|
</ul>
|
||||||
|
<div class="toc-actions"><ul><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/edit/main/MS/index.qmd" class="toc-action"><i class="bi bi-git"></i>Edit this page</a></li><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/blob/main/MS/index.qmd" class="toc-action"><i class="bi empty"></i>View source</a></li><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/issues/new" class="toc-action"><i class="bi empty"></i>Report an issue</a></li></ul></div></nav>
|
||||||
|
</div>
|
||||||
|
<!-- main -->
|
||||||
|
<main class="content" id="quarto-document-content">
|
||||||
|
|
||||||
|
<header id="title-block-header" class="quarto-title-block default">
|
||||||
|
<div class="quarto-title">
|
||||||
|
<h1 class="title">MANUSCRIPT TITLE</h1>
|
||||||
|
<p class="subtitle lead">Graphical abstract</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="quarto-title-meta-author">
|
||||||
|
<div class="quarto-title-meta-heading">Authors</div>
|
||||||
|
<div class="quarto-title-meta-heading">Affiliations</div>
|
||||||
|
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="author"><a href="https://drwater.rcees.ac.cn">Ming Su</a> <a href="mailto:mingsu@rcees.ac.cn" class="quarto-title-author-email"><i class="bi bi-envelope"></i></a> <a href="https://orcid.org/0000-0001-9821-1268" class="quarto-title-author-orcid"> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMjA4MDI1MjA2ODExOTk0QzkzNTEzRjZEQTg1NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozM0NDOEJGNEZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozM0NDOEJGM0ZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDN0YxMTc0MDcyMDY4MTE5NUZFRDc5MUM2MUUwNEREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3Q0QyMDgwMjUyMDY4MTE5OTRDOTM1MTNGNkRBODU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+84NovQAAAR1JREFUeNpiZEADy85ZJgCpeCB2QJM6AMQLo4yOL0AWZETSqACk1gOxAQN+cAGIA4EGPQBxmJA0nwdpjjQ8xqArmczw5tMHXAaALDgP1QMxAGqzAAPxQACqh4ER6uf5MBlkm0X4EGayMfMw/Pr7Bd2gRBZogMFBrv01hisv5jLsv9nLAPIOMnjy8RDDyYctyAbFM2EJbRQw+aAWw/LzVgx7b+cwCHKqMhjJFCBLOzAR6+lXX84xnHjYyqAo5IUizkRCwIENQQckGSDGY4TVgAPEaraQr2a4/24bSuoExcJCfAEJihXkWDj3ZAKy9EJGaEo8T0QSxkjSwORsCAuDQCD+QILmD1A9kECEZgxDaEZhICIzGcIyEyOl2RkgwAAhkmC+eAm0TAAAAABJRU5ErkJggg=="></a></p>
|
||||||
|
</div>
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="affiliation">
|
||||||
|
<a href="https://www.skleac.ac.cn">
|
||||||
|
State Key Laboratory of Environmental Aquatic Chemistry, Research Center for Eco-Environmental Sciences, Chinese Academy of Sciences
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p class="affiliation">
|
||||||
|
<a href="https://www.ucas.ac.cn">
|
||||||
|
University of Chinese Academy of Sciences
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="author">Min Yang <a href="mailto:yangmin@rcees.ac.cn" class="quarto-title-author-email"><i class="bi bi-envelope"></i></a> </p>
|
||||||
|
</div>
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="affiliation">
|
||||||
|
<a href="https://www.skleac.ac.cn">
|
||||||
|
State Key Laboratory of Environmental Aquatic Chemistry, Research Center for Eco-Environmental Sciences, Chinese Academy of Sciences
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p class="affiliation">
|
||||||
|
<a href="https://www.ucas.ac.cn">
|
||||||
|
University of Chinese Academy of Sciences
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="quarto-title-meta">
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div class="quarto-title-meta-heading">Published</div>
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="date">November 10, 2023</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<section id="readme" class="level1">
|
||||||
|
<h1>README</h1>
|
||||||
|
<p>Below are the typical links.</p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="CL.html">Cover Letter</a></li>
|
||||||
|
<li><a href="HL.html">Highlights</a></li>
|
||||||
|
<li><a href="MS.html">Manuscript</a></li>
|
||||||
|
<li><a href="SM.html">Supplementary Material</a></li>
|
||||||
|
<li><a href="RN.html">Revision Note</a></li>
|
||||||
|
<li><a href="AC.html">Author Credits</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</main> <!-- /main -->
|
||||||
|
<script id="quarto-html-after-body" type="application/javascript">
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (event) {
|
||||||
|
const toggleBodyColorMode = (bsSheetEl) => {
|
||||||
|
const mode = bsSheetEl.getAttribute("data-mode");
|
||||||
|
const bodyEl = window.document.querySelector("body");
|
||||||
|
if (mode === "dark") {
|
||||||
|
bodyEl.classList.add("quarto-dark");
|
||||||
|
bodyEl.classList.remove("quarto-light");
|
||||||
|
} else {
|
||||||
|
bodyEl.classList.add("quarto-light");
|
||||||
|
bodyEl.classList.remove("quarto-dark");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const toggleBodyColorPrimary = () => {
|
||||||
|
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
||||||
|
if (bsSheetEl) {
|
||||||
|
toggleBodyColorMode(bsSheetEl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toggleBodyColorPrimary();
|
||||||
|
const icon = "";
|
||||||
|
const anchorJS = new window.AnchorJS();
|
||||||
|
anchorJS.options = {
|
||||||
|
placement: 'right',
|
||||||
|
icon: icon
|
||||||
|
};
|
||||||
|
anchorJS.add('.anchored');
|
||||||
|
const isCodeAnnotation = (el) => {
|
||||||
|
for (const clz of el.classList) {
|
||||||
|
if (clz.startsWith('code-annotation-')) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const clipboard = new window.ClipboardJS('.code-copy-button', {
|
||||||
|
text: function(trigger) {
|
||||||
|
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
||||||
|
for (const childEl of codeEl.children) {
|
||||||
|
if (isCodeAnnotation(childEl)) {
|
||||||
|
childEl.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return codeEl.innerText;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
clipboard.on('success', function(e) {
|
||||||
|
// button target
|
||||||
|
const button = e.trigger;
|
||||||
|
// don't keep focus
|
||||||
|
button.blur();
|
||||||
|
// flash "checked"
|
||||||
|
button.classList.add('code-copy-button-checked');
|
||||||
|
var currentTitle = button.getAttribute("title");
|
||||||
|
button.setAttribute("title", "Copied!");
|
||||||
|
let tooltip;
|
||||||
|
if (window.bootstrap) {
|
||||||
|
button.setAttribute("data-bs-toggle", "tooltip");
|
||||||
|
button.setAttribute("data-bs-placement", "left");
|
||||||
|
button.setAttribute("data-bs-title", "Copied!");
|
||||||
|
tooltip = new bootstrap.Tooltip(button,
|
||||||
|
{ trigger: "manual",
|
||||||
|
customClass: "code-copy-button-tooltip",
|
||||||
|
offset: [0, -8]});
|
||||||
|
tooltip.show();
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
|
if (tooltip) {
|
||||||
|
tooltip.hide();
|
||||||
|
button.removeAttribute("data-bs-title");
|
||||||
|
button.removeAttribute("data-bs-toggle");
|
||||||
|
button.removeAttribute("data-bs-placement");
|
||||||
|
}
|
||||||
|
button.setAttribute("title", currentTitle);
|
||||||
|
button.classList.remove('code-copy-button-checked');
|
||||||
|
}, 1000);
|
||||||
|
// clear code selection
|
||||||
|
e.clearSelection();
|
||||||
|
});
|
||||||
|
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
|
||||||
|
const config = {
|
||||||
|
allowHTML: true,
|
||||||
|
maxWidth: 500,
|
||||||
|
delay: 100,
|
||||||
|
arrow: false,
|
||||||
|
appendTo: function(el) {
|
||||||
|
return el.parentElement;
|
||||||
|
},
|
||||||
|
interactive: true,
|
||||||
|
interactiveBorder: 10,
|
||||||
|
theme: 'quarto',
|
||||||
|
placement: 'bottom-start',
|
||||||
|
};
|
||||||
|
if (contentFn) {
|
||||||
|
config.content = contentFn;
|
||||||
|
}
|
||||||
|
if (onTriggerFn) {
|
||||||
|
config.onTrigger = onTriggerFn;
|
||||||
|
}
|
||||||
|
if (onUntriggerFn) {
|
||||||
|
config.onUntrigger = onUntriggerFn;
|
||||||
|
}
|
||||||
|
window.tippy(el, config);
|
||||||
|
}
|
||||||
|
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
||||||
|
for (var i=0; i<noterefs.length; i++) {
|
||||||
|
const ref = noterefs[i];
|
||||||
|
tippyHover(ref, function() {
|
||||||
|
// use id or data attribute instead here
|
||||||
|
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
||||||
|
try { href = new URL(href).hash; } catch {}
|
||||||
|
const id = href.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
return note.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const xrefs = window.document.querySelectorAll('a.quarto-xref');
|
||||||
|
const processXRef = (id, note) => {
|
||||||
|
// Strip column container classes
|
||||||
|
const stripColumnClz = (el) => {
|
||||||
|
el.classList.remove("page-full", "page-columns");
|
||||||
|
if (el.children) {
|
||||||
|
for (const child of el.children) {
|
||||||
|
stripColumnClz(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stripColumnClz(note)
|
||||||
|
const typesetMath = (el) => {
|
||||||
|
if (window.MathJax) {
|
||||||
|
// MathJax Typeset
|
||||||
|
window.MathJax.typeset([el]);
|
||||||
|
} else if (window.katex) {
|
||||||
|
// KaTeX Render
|
||||||
|
var mathElements = el.getElementsByClassName("math");
|
||||||
|
var macros = [];
|
||||||
|
for (var i = 0; i < mathElements.length; i++) {
|
||||||
|
var texText = mathElements[i].firstChild;
|
||||||
|
if (mathElements[i].tagName == "SPAN") {
|
||||||
|
window.katex.render(texText.data, mathElements[i], {
|
||||||
|
displayMode: mathElements[i].classList.contains('display'),
|
||||||
|
throwOnError: false,
|
||||||
|
macros: macros,
|
||||||
|
fleqn: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (id === null || id.startsWith('sec-')) {
|
||||||
|
// Special case sections, only their first couple elements
|
||||||
|
const container = document.createElement("div");
|
||||||
|
if (note.children && note.children.length > 2) {
|
||||||
|
for (let i = 0; i < 2; i++) {
|
||||||
|
container.appendChild(note.children[i].cloneNode(true));
|
||||||
|
}
|
||||||
|
typesetMath(container);
|
||||||
|
return container.innerHTML
|
||||||
|
} else {
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Remove any anchor links if they are present
|
||||||
|
const anchorLink = note.querySelector('a.anchorjs-link');
|
||||||
|
if (anchorLink) {
|
||||||
|
anchorLink.remove();
|
||||||
|
}
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (var i=0; i<xrefs.length; i++) {
|
||||||
|
const xref = xrefs[i];
|
||||||
|
tippyHover(xref, undefined, function(instance) {
|
||||||
|
instance.disable();
|
||||||
|
let url = xref.getAttribute('href');
|
||||||
|
let hash = undefined;
|
||||||
|
if (url.startsWith('#')) {
|
||||||
|
hash = url;
|
||||||
|
} else {
|
||||||
|
try { hash = new URL(url).hash; } catch {}
|
||||||
|
}
|
||||||
|
if (hash) {
|
||||||
|
const id = hash.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
try {
|
||||||
|
const html = processXRef(id, note.cloneNode(true));
|
||||||
|
instance.setContent(html);
|
||||||
|
} finally {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch this
|
||||||
|
fetch(url.split('#')[0])
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
const html = processXRef(id, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch a full url (with no hash to target)
|
||||||
|
// This is a special case and we should probably do some content thinning / targeting
|
||||||
|
fetch(url)
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.querySelector('main.content');
|
||||||
|
if (note !== null) {
|
||||||
|
// This should only happen for chapter cross references
|
||||||
|
// (since there is no id in the URL)
|
||||||
|
// remove the first header
|
||||||
|
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
|
||||||
|
note.children[0].remove();
|
||||||
|
}
|
||||||
|
const html = processXRef(null, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, function(instance) {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let selectedAnnoteEl;
|
||||||
|
const selectorForAnnotation = ( cell, annotation) => {
|
||||||
|
let cellAttr = 'data-code-cell="' + cell + '"';
|
||||||
|
let lineAttr = 'data-code-annotation="' + annotation + '"';
|
||||||
|
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
|
||||||
|
return selector;
|
||||||
|
}
|
||||||
|
const selectCodeLines = (annoteEl) => {
|
||||||
|
const doc = window.document;
|
||||||
|
const targetCell = annoteEl.getAttribute("data-target-cell");
|
||||||
|
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
|
||||||
|
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
|
||||||
|
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
|
||||||
|
const lineIds = lines.map((line) => {
|
||||||
|
return targetCell + "-" + line;
|
||||||
|
})
|
||||||
|
let top = null;
|
||||||
|
let height = null;
|
||||||
|
let parent = null;
|
||||||
|
if (lineIds.length > 0) {
|
||||||
|
//compute the position of the single el (top and bottom and make a div)
|
||||||
|
const el = window.document.getElementById(lineIds[0]);
|
||||||
|
top = el.offsetTop;
|
||||||
|
height = el.offsetHeight;
|
||||||
|
parent = el.parentElement.parentElement;
|
||||||
|
if (lineIds.length > 1) {
|
||||||
|
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
|
||||||
|
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
|
||||||
|
height = bottom - top;
|
||||||
|
}
|
||||||
|
if (top !== null && height !== null && parent !== null) {
|
||||||
|
// cook up a div (if necessary) and position it
|
||||||
|
let div = window.document.getElementById("code-annotation-line-highlight");
|
||||||
|
if (div === null) {
|
||||||
|
div = window.document.createElement("div");
|
||||||
|
div.setAttribute("id", "code-annotation-line-highlight");
|
||||||
|
div.style.position = 'absolute';
|
||||||
|
parent.appendChild(div);
|
||||||
|
}
|
||||||
|
div.style.top = top - 2 + "px";
|
||||||
|
div.style.height = height + 4 + "px";
|
||||||
|
div.style.left = 0;
|
||||||
|
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
|
||||||
|
if (gutterDiv === null) {
|
||||||
|
gutterDiv = window.document.createElement("div");
|
||||||
|
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
|
||||||
|
gutterDiv.style.position = 'absolute';
|
||||||
|
const codeCell = window.document.getElementById(targetCell);
|
||||||
|
const gutter = codeCell.querySelector('.code-annotation-gutter');
|
||||||
|
gutter.appendChild(gutterDiv);
|
||||||
|
}
|
||||||
|
gutterDiv.style.top = top - 2 + "px";
|
||||||
|
gutterDiv.style.height = height + 4 + "px";
|
||||||
|
}
|
||||||
|
selectedAnnoteEl = annoteEl;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const unselectCodeLines = () => {
|
||||||
|
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
|
||||||
|
elementsIds.forEach((elId) => {
|
||||||
|
const div = window.document.getElementById(elId);
|
||||||
|
if (div) {
|
||||||
|
div.remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
selectedAnnoteEl = undefined;
|
||||||
|
};
|
||||||
|
// Handle positioning of the toggle
|
||||||
|
window.addEventListener(
|
||||||
|
"resize",
|
||||||
|
throttle(() => {
|
||||||
|
elRect = undefined;
|
||||||
|
if (selectedAnnoteEl) {
|
||||||
|
selectCodeLines(selectedAnnoteEl);
|
||||||
|
}
|
||||||
|
}, 10)
|
||||||
|
);
|
||||||
|
function throttle(fn, ms) {
|
||||||
|
let throttle = false;
|
||||||
|
let timer;
|
||||||
|
return (...args) => {
|
||||||
|
if(!throttle) { // first call gets through
|
||||||
|
fn.apply(this, args);
|
||||||
|
throttle = true;
|
||||||
|
} else { // all the others get throttled
|
||||||
|
if(timer) clearTimeout(timer); // cancel #2
|
||||||
|
timer = setTimeout(() => {
|
||||||
|
fn.apply(this, args);
|
||||||
|
timer = throttle = false;
|
||||||
|
}, ms);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// Attach click handler to the DT
|
||||||
|
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
|
||||||
|
for (const annoteDlNode of annoteDls) {
|
||||||
|
annoteDlNode.addEventListener('click', (event) => {
|
||||||
|
const clickedEl = event.target;
|
||||||
|
if (clickedEl !== selectedAnnoteEl) {
|
||||||
|
unselectCodeLines();
|
||||||
|
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
|
||||||
|
if (activeEl) {
|
||||||
|
activeEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
selectCodeLines(clickedEl);
|
||||||
|
clickedEl.classList.add('code-annotation-active');
|
||||||
|
} else {
|
||||||
|
// Unselect the line
|
||||||
|
unselectCodeLines();
|
||||||
|
clickedEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const findCites = (el) => {
|
||||||
|
const parentEl = el.parentElement;
|
||||||
|
if (parentEl) {
|
||||||
|
const cites = parentEl.dataset.cites;
|
||||||
|
if (cites) {
|
||||||
|
return {
|
||||||
|
el,
|
||||||
|
cites: cites.split(' ')
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return findCites(el.parentElement)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
||||||
|
for (var i=0; i<bibliorefs.length; i++) {
|
||||||
|
const ref = bibliorefs[i];
|
||||||
|
const citeInfo = findCites(ref);
|
||||||
|
if (citeInfo) {
|
||||||
|
tippyHover(citeInfo.el, function() {
|
||||||
|
var popup = window.document.createElement('div');
|
||||||
|
citeInfo.cites.forEach(function(cite) {
|
||||||
|
var citeDiv = window.document.createElement('div');
|
||||||
|
citeDiv.classList.add('hanging-indent');
|
||||||
|
citeDiv.classList.add('csl-entry');
|
||||||
|
var biblioDiv = window.document.getElementById('ref-' + cite);
|
||||||
|
if (biblioDiv) {
|
||||||
|
citeDiv.innerHTML = biblioDiv.innerHTML;
|
||||||
|
}
|
||||||
|
popup.appendChild(citeDiv);
|
||||||
|
});
|
||||||
|
return popup.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div> <!-- /content -->
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="nav-footer">
|
||||||
|
<div class="nav-footer-left">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="nav-footer-center">
|
||||||
|
<p>Copyright 2023, <a href="https://drwater.rcees.ac.cn">Ming Su</a></p>
|
||||||
|
</div>
|
||||||
|
<div class="nav-footer-right">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body></html>
|
||||||
+1
-7
@@ -17,13 +17,7 @@ rmdify::rmd_init()
|
|||||||
data.frame(fd = dir(".", pattern = "[-_]")) |>
|
data.frame(fd = dir(".", pattern = "[-_]")) |>
|
||||||
dplyr::mutate(fn = purrr::map_chr(fd, ~ file.path(.x, dir(.x,
|
dplyr::mutate(fn = purrr::map_chr(fd, ~ file.path(.x, dir(.x,
|
||||||
pattern = "index.qmd|index.doc|index.pdf|index.ppt")))) |>
|
pattern = "index.qmd|index.doc|index.pdf|index.ppt")))) |>
|
||||||
dplyr::transmute(htmlstr = purrr::map_chr(fn, ~ paste0("## [", .x, "](", .x, ")\n\n",
|
dplyr::transmute(htmlstr = purrr::map_chr(fn, ~ paste0("## [", .x, "](", .x, ")\n\n"))) |>
|
||||||
ifelse(!grepl("qmd$", .x), "",
|
|
||||||
paste0("<iframe title='",
|
|
||||||
gsub("^.*[_-]([^\\/]*)\\/.*$", "\\1", .x),
|
|
||||||
"' width=800 height=600 src = '",
|
|
||||||
gsub("qmd$", "html", .x),
|
|
||||||
"'></iframe>\n\n"))))) |>
|
|
||||||
dplyr::pull(htmlstr) |>
|
dplyr::pull(htmlstr) |>
|
||||||
paste(collapse = "") |>
|
paste(collapse = "") |>
|
||||||
cat()
|
cat()
|
||||||
|
|||||||
@@ -0,0 +1,759 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en"><head>
|
||||||
|
<script src="../../site_libs/clipboard/clipboard.min.js"></script>
|
||||||
|
<script src="../../site_libs/quarto-html/tabby.min.js"></script>
|
||||||
|
<script src="../../site_libs/quarto-html/popper.min.js"></script>
|
||||||
|
<script src="../../site_libs/quarto-html/tippy.umd.min.js"></script>
|
||||||
|
<link href="../../site_libs/quarto-html/tippy.css" rel="stylesheet">
|
||||||
|
<link href="../../site_libs/quarto-html/light-border.css" rel="stylesheet">
|
||||||
|
<link href="../../site_libs/quarto-html/quarto-html.min.css" rel="stylesheet" data-mode="light">
|
||||||
|
<link href="../../site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles"><meta charset="utf-8">
|
||||||
|
<meta name="generator" content="quarto-1.4.480">
|
||||||
|
|
||||||
|
<meta name="author" content="Ming Su">
|
||||||
|
<meta name="author" content="Min Yang">
|
||||||
|
<meta name="dcterms.date" content="2023-11-10">
|
||||||
|
<title>Version: main - 文章讨论</title>
|
||||||
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
|
||||||
|
<link rel="stylesheet" href="../../site_libs/revealjs/dist/reset.css">
|
||||||
|
<link rel="stylesheet" href="../../site_libs/revealjs/dist/reveal.css">
|
||||||
|
<style>
|
||||||
|
code{white-space: pre-wrap;}
|
||||||
|
span.smallcaps{font-variant: small-caps;}
|
||||||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
|
ul.task-list{list-style: none;}
|
||||||
|
ul.task-list li input[type="checkbox"] {
|
||||||
|
width: 0.8em;
|
||||||
|
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="../../site_libs/revealjs/dist/theme/quarto.css">
|
||||||
|
<link href="../../site_libs/revealjs/plugin/quarto-line-highlight/line-highlight.css" rel="stylesheet">
|
||||||
|
<link href="../../site_libs/revealjs/plugin/reveal-menu/menu.css" rel="stylesheet">
|
||||||
|
<link href="../../site_libs/revealjs/plugin/reveal-menu/quarto-menu.css" rel="stylesheet">
|
||||||
|
<link href="../../site_libs/revealjs/plugin/quarto-support/footer.css" rel="stylesheet">
|
||||||
|
<script type="application/json" class="js-hypothesis-config">
|
||||||
|
{
|
||||||
|
"theme": "clean",
|
||||||
|
"openSidebar": false
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script async="" src="https://hypothes.is/embed.js"></script>
|
||||||
|
<script>
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (_event) {
|
||||||
|
document.body.classList.add('hypothesis-enabled');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
.callout {
|
||||||
|
margin-top: 1em;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
border-radius: .25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-style-simple {
|
||||||
|
padding: 0em 0.5em;
|
||||||
|
border-left: solid #acacac .3rem;
|
||||||
|
border-right: solid 1px silver;
|
||||||
|
border-top: solid 1px silver;
|
||||||
|
border-bottom: solid 1px silver;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-style-default {
|
||||||
|
border-left: solid #acacac .3rem;
|
||||||
|
border-right: solid 1px silver;
|
||||||
|
border-top: solid 1px silver;
|
||||||
|
border-bottom: solid 1px silver;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout .callout-body-container {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-style-simple .callout-body {
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-style-default .callout-body {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-titled.callout-style-simple .callout-body {
|
||||||
|
margin-top: 0.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout:not(.callout-titled) .callout-body {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout:not(.no-icon).callout-titled.callout-style-simple .callout-content {
|
||||||
|
padding-left: 1.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-titled .callout-header {
|
||||||
|
padding-top: 0.2em;
|
||||||
|
margin-bottom: -0.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-titled .callout-title p {
|
||||||
|
margin-top: 0.5em;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-titled.callout-style-simple .callout-content p {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-titled.callout-style-default .callout-content p {
|
||||||
|
margin-top: 0.7em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-style-simple div.callout-title {
|
||||||
|
border-bottom: none;
|
||||||
|
font-size: .9rem;
|
||||||
|
font-weight: 600;
|
||||||
|
opacity: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-style-default div.callout-title {
|
||||||
|
border-bottom: none;
|
||||||
|
font-weight: 600;
|
||||||
|
opacity: 85%;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
padding-left: 0.5em;
|
||||||
|
padding-right: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-style-default div.callout-content {
|
||||||
|
padding-left: 0.5em;
|
||||||
|
padding-right: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-style-simple .callout-icon::before {
|
||||||
|
height: 1rem;
|
||||||
|
width: 1rem;
|
||||||
|
display: inline-block;
|
||||||
|
content: "";
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 1rem 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-style-default .callout-icon::before {
|
||||||
|
height: 0.9rem;
|
||||||
|
width: 0.9rem;
|
||||||
|
display: inline-block;
|
||||||
|
content: "";
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 0.9rem 0.9rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout-title {
|
||||||
|
display: flex
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout-icon::before {
|
||||||
|
margin-top: 1rem;
|
||||||
|
padding-right: .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.no-icon::before {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-titled .callout-body > .callout-content > :last-child {
|
||||||
|
padding-bottom: 0.5rem;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout.callout-titled .callout-icon::before {
|
||||||
|
margin-top: .5rem;
|
||||||
|
padding-right: .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout:not(.callout-titled) .callout-icon::before {
|
||||||
|
margin-top: 1rem;
|
||||||
|
padding-right: .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Callout Types */
|
||||||
|
|
||||||
|
div.callout-note {
|
||||||
|
border-left-color: #4582ec !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.callout-note .callout-icon::before {
|
||||||
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAAEU0lEQVRYCcVXTWhcVRQ+586kSUMMxkyaElstCto2SIhitS5Ek8xUKV2poatCcVHtUlFQk8mbaaziwpWgglJwVaquitBOfhQXFlqlzSJpFSpIYyXNjBNiTCck7x2/8/LeNDOZxDuEkgOXe++553zfefee+/OYLOXFk3+1LLrRdiO81yNqZ6K9cG0P3MeFaMIQjXssE8Z1JzLO9ls20MBZX7oG8w9GxB0goaPrW5aNMp1yOZIa7Wv6o2ykpLtmAPs/vrG14Z+6d4jpbSKuhdcSyq9wGMPXjonwmESXrriLzFGOdDBLB8Y6MNYBu0dRokSygMA/mrun8MGFN3behm6VVAwg4WR3i6FvYK1T7MHo9BK7ydH+1uurECoouk5MPRyVSBrBHMYwVobG2aOXM07sWrn5qgB60rc6mcwIDJtQrnrEr44kmy+UO9r0u9O5/YbkS9juQckLed3DyW2XV/qWBBB3ptvI8EUY3I9p/67OW+g967TNr3Sotn3IuVlfMLVnsBwH4fsnebJvyGm5GeIUA3jljERmrv49SizPYuq+z7c2H/jlGC+Ghhupn/hcapqmcudB9jwJ/3jvnvu6vu5lVzF1fXyZuZZ7U8nRmVzytvT+H3kilYvH09mLWrQdwFSsFEsxFVs5fK7A0g8gMZjbif4ACpKbjv7gNGaD8bUrlk8x+KRflttr22JEMRUbTUwwDQScyzPgedQHZT0xnx7ujw2jfVfExwYHwOsDTjLdJ2ebmeQIlJ7neo41s/DrsL3kl+W2lWvAga0tR3zueGr6GL78M3ifH0rGXrBC2aAR8uYcIA5gwV8zIE8onoh8u0Fca/ciF7j1uOzEnqcIm59sEXoGc0+z6+H45V1CvAvHcD7THztu669cnp+L0okAeIc6zjbM/24LgGM1gZk7jnRu1aQWoU9sfUOuhrmtaPIO3YY1KLLWZaEO5TKUbMY5zx8W9UJ6elpLwKXbsaZ4EFl7B4bMtDv0iRipKoDQT2sNQI9b1utXFdYisi+wzZ/ri/1m7QfDgEuvgUUEIJPq3DhX/5DWNqIXDOweC2wvIR90Oq3lDpdMIgD2r0dXvGdsEW5H6x6HLRJYU7C69VefO1x8Gde1ZFSJLfWS1jbCnhtOPxmpfv2LXOA2Xk2tvnwKKPFuZ/oRmwBwqRQDcKNeVQkYcOjtWVBuM/JuYw5b6isojIkYxyYAFn5K7ZBF10fea52y8QltAg6jnMqNHFBmGkQ1j+U43HMi2xMar1Nv0zGsf1s8nUsmUtPOOrbFIR8bHFDMB5zL13Gmr/kGlCkUzedTzzmzsaJXhYawnA3UmARpiYj5ooJZiUoxFRtK3X6pgNPv+IZVPcnwbOl6f+aBaO1CNvPW9n9LmCp01nuSaTRF2YxHqZ8DYQT6WsXT+RD6eUztwYLZ8rM+rcPxamv1VQzFUkzFXvkiVrySGQgJNvXHJAxiU3/NwiC03rSf05VBaPtu/Z7/B8Yn/w7eguloAAAAAElFTkSuQmCC');
|
||||||
|
}
|
||||||
|
|
||||||
|
div.callout-note.callout-style-default .callout-title {
|
||||||
|
background-color: #dae6fb
|
||||||
|
}
|
||||||
|
|
||||||
|
div.callout-important {
|
||||||
|
border-left-color: #d9534f !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.callout-important .callout-icon::before {
|
||||||
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAAEKklEQVRYCcVXTWhcVRS+575MJym48A+hSRFr00ySRQhURRfd2HYjk2SSTokuBCkU2o0LoSKKraKIBTcuFCoidGFD08nkBzdREbpQ1EDNIv8qSGMFUboImMSZd4/f9zJv8ibJMC8xJQfO3HPPPef7zrvvvnvviIkpC9nsw0UttFunbUhpFzFtarSd6WJkStVMw5xyVqYTvkwfzuf/5FgtkVoB0729j1rjXwThS7Vio+Mo6DNnvLfahoZ+i/o32lULuJ3NNiz7q6+pyAUkJaFF6JwaM2lUJlV0MlnQn5aTRbEu0SEqHUa0A4AdiGuB1kFXRfVyg5d87+Dg4DL6m2TLAub60ilj7A1Ec4odSAc8X95sHh7+ZRPCFo6Fnp7HfU/fBng/hi10CjCnWnJjsxvDNxWw0NfV6Rv5GgP3I3jGWXumdTD/3cbEOP2ZbOZp69yniG3FQ9z1jD7bnBu9Fc2tKGC2q+uAJOQHBDRiZX1x36o7fWBs7J9ownbtO+n0/qWkvW7UPIfc37WgT6ZGR++EOJyeQDSb9UB+DZ1G6DdLDzyS+b/kBCYGsYgJbSQHuThGKRcw5xdeQf8YdNHsc6ePXrlSYMBuSIAFTGAtQo+VuALo4BX83N190NWZWbynBjhOHsmNfFWLeL6v+ynsA58zDvvAC8j5PkbOcXCMg2PZFk3q8MjI7WAG/Dp9AwP7jdGBOOQkAvlFUB+irtm16I1Zw9YBcpGTGXYmk3kQIC/Cds55l+iMI3jqhjAuaoe+am2Jw5GT3Nbz3CkE12NavmzN5+erJW7046n/CH1RO/RVa8lBLozXk9uqykkGAyRXLWlLv5jyp4RFsG5vGVzpDLnIjTWgnRy2Rr+tDKvRc7Y8AyZq10jj8DqXdnIRNtFZb+t/ZRtXcDiVnzpqx8mPcDWxgARUqx0W1QB9MeUZiNrV4qP+Ehc+BpNgATsTX8ozYKL2NtFYAHc84fG7ndxUPr+AR/iQSns7uSUufAymwDOb2+NjK27lEFocm/EE2WpyIy/Hi66MWuMKJn8RvxIcj87IM5Vh9663ziW36kR0HNenXuxmfaD8JC7tfKbrhFr7LiZCrMjrzTeGx+PmkosrkNzW94ObzwocJ7A1HokLolY+AvkTiD/q1H0cN48c5EL8Crkttsa/AXQVDmutfyku0E7jShx49XqV3MFK8IryDhYVbj7Sj2P2eBxwcXoe8T8idsKKPRcnZw1b+slFTubwUwhktrfnAt7J++jwQtLZcm3sr9LQrjRzz6cfMv9aLvgmnAGvpoaGLxM4mAEaLV7iAzQ3oU0IvD5x9ix3yF2RAAuYAOO2f7PEFWCXZ4C9Pb2UsgDeVnFSpbFK7/IWu7TPTvBqzbGdCHOJQSxiEjt6IyZmxQyEJHv6xyQsYk//moVFsN2zP6fRImjfq7/n/wFDguUQFNEwugAAAABJRU5ErkJggg==');
|
||||||
|
}
|
||||||
|
|
||||||
|
div.callout-important.callout-style-default .callout-title {
|
||||||
|
background-color: #f7dddc
|
||||||
|
}
|
||||||
|
|
||||||
|
div.callout-warning {
|
||||||
|
border-left-color: #f0ad4e !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.callout-warning .callout-icon::before {
|
||||||
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAAETklEQVRYCeVWW2gcVRg+58yaTUnizqbipZeX4uWhBEniBaoUX1Ioze52t7sRq6APio9V9MEaoWlVsFasRq0gltaAPuxms8lu0gcviE/FFOstVbSIxgcv6SU7EZqmdc7v9+9mJtNks51NTUH84ed889/PP+cmxP+d5FIbMJmNbpREu4WUkiTtCicKny0l1pIKmBzovF2S+hIJHX8iEu3hZJ5lNZGqyRrGSIQpq15AzF28jgpeY6yk6GVdrfFqdrD6Iw+QlB8g0YS2g7dyQmXM/IDhBhT0UCiRf59lfqmmDvzRt6kByV/m4JjtzuaujMUM2c5Z2d6JdKrRb3K2q6mA+oYVz8JnDdKPmmNthzkAk/lN63sYPgevrguc72aZX/L9C6x09GYyxBgCX4NlvyGUHOKELlm5rXeR1kchuChJt4SSwyddZRXgvwMGvYo4QSlk3/zkHD8UHxwVJA6zjZZqP8v8kK8OWLnIZtLyCAJagYC4rTGW/9Pqj92N/c+LUaAj27movwbi19tk/whRCIE7Q9vyI6yvRpftAKVTdUjOW40X3h5OXsKCdmFcx0xlLJoSuQngnrJe7Kcjm4OMq9FlC7CMmScQANuNvjfP3PjGXDBaUQmbp296S5L4DrpbrHN1T87ZVEZVCzg1FF0Ft+dKrlLukI+/c9ENo+TvlTDbYFvuKPtQ9+l052rXrgKoWkDAFnvh0wTOmYn8R5f4k/jN/fZiCM1tQx9jQQ4ANhqG4hiL0qIFTGViG9DKB7GYzgubnpofgYRwO+DFjh0Zin2m4b/97EDkXkc+f6xYAPX0KK2I/7fUQuwzuwo/L3AkcjugPNixC8cHf0FyPjWlItmLxWw4Ou9YsQCr5fijMGoD/zpdRy95HRysyXA74MWOnscpO4j2y3HAVisw85hX5+AFBRSHt4ShfLFkIMXTqyKFc46xdzQM6XbAi702a7sy04J0+feReMFKp5q9esYLCqAZYw/k14E/xcLLsFElaornTuJB0svMuJINy8xkIYuL+xPAlWRceH6+HX7THJ0djLUom46zREu7tTkxwmf/FdOZ/sh6Q8qvEAiHpm4PJ4a/doJe0gH1t+aHRgCzOvBvJedEK5OFE5jpm4AGP2a8Dxe3gGJ/pAutug9Gp6he92CsSsWBaEcxGx0FHytmIpuqGkOpldqNYQK8cSoXvd+xLxXADw0kf6UkJNFtdo5MOgaLjiQOQHcn+A6h5NuL2s0qsC2LOM75PcF3yr5STuBSAcGG+meA14K/CI21HcS4LBT6tv0QAh8Dr5l93AhZzG5ZJ4VxAqdZUEl9z7WJ4aN+svMvwHHL21UKTd1mqvChH7/Za5xzXBBKrUcB0TQ+Ulgkfbi/H/YT5EptrGzsEK7tR1B7ln9BBwckYfMiuSqklSznIuoIIOM42MQO+QnduCoFCI0bpkzjCjddHPN/F+2Yu+sd9bKNpVwHhbS3LluK/0zgfwD0xYI5dXuzlQAAAABJRU5ErkJggg==');
|
||||||
|
}
|
||||||
|
|
||||||
|
div.callout-warning.callout-style-default .callout-title {
|
||||||
|
background-color: #fcefdc
|
||||||
|
}
|
||||||
|
|
||||||
|
div.callout-tip {
|
||||||
|
border-left-color: #02b875 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.callout-tip .callout-icon::before {
|
||||||
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAADr0lEQVRYCe1XTWgTQRj9ZjZV8a9SPIkKgj8I1bMHsUWrqYLVg4Ue6v9BwZOxSYsIerFao7UiUryIqJcqgtpimhbBXoSCVxUFe9CTiogUrUp2Pt+3aUI2u5vdNh4dmMzOzHvvezuz8xNFM0mjnbXaNu1MvFWRXkXEyE6aYOYJpdW4IXuA4r0fo8qqSMDBU0v1HJUgVieAXxzCsdE/YJTdFcVIZQNMyhruOMJKXYFoLfIfIvVIMWdsrd+Rpd86ZmyzzjJmLStqRn0v8lzkb4rVIXvnpScOJuAn2ACC65FkPzEdEy4TPWRLJ2h7z4cArXzzaOdKlbOvKKX25Wl00jSnrwVxAg3o4dRxhO13RBSdNvH0xSARv3adTXbBdTf64IWO2vH0LT+cv4GR1DJt+DUItaQogeBX/chhbTBxEiZ6gftlDNXTrvT7co4ub5A6gp9HIcHvzTa46OS5fBeP87Qm0fQkr4FsYgVQ7Qg+ZayaDg9jhg1GkWj8RG6lkeSacrrHgDaxdoBiZPg+NXV/KifMuB6//JmYH4CntVEHy/keA6x4h4CU5oFy8GzrBS18cLJMXcljAKB6INjWsRcuZBWVaS3GDrqB7rdapVIeA+isQ57Eev9eCqzqOa81CY05VLd6SamW2wA2H3SiTbnbSxmzfp7WtKZkqy4mdyAlGx7ennghYf8voqp9cLSgKdqNfa6RdRsAAkPwRuJZNbpByn+RrJi1RXTwdi8RQF6ymDwGMAtZ6TVE+4uoKh+MYkcLsT0Hk8eAienbiGdjJHZTpmNjlbFJNKDVAp2fJlYju6IreQxQ08UJDNYdoLSl6AadO+fFuCQqVMB1NJwPm69T04Wv5WhfcWyfXQB+wXRs1pt+nCknRa0LVzSA/2B+a9+zQJadb7IyyV24YAxKp2Jqs3emZTuNnKxsah+uabKbMk7CbTgJx/zIgQYErIeTKRQ9yD9wxVof5YolPHqaWo7TD6tJlh7jQnK5z2n3+fGdggIOx2kaa2YI9QWarc5Ce1ipNWMKeSG4DysFF52KBmTNMmn5HqCFkwy34rDg05gDwgH3bBi+sgFhN/e8QvRn8kbamCOhgrZ9GJhFDgfcMHzFb6BAtjKpFhzTjwv1KCVuxHvCbsSiEz4CANnj84cwHdFXAbAOJ4LTSAawGWFn5tDhLMYz6nWeU2wJfIhmIJBefcd/A5FWQWGgrWzyORZ3Q6HuV+Jf0Bj+BTX69fm1zWgK7By1YTXchFDORywnfQ7GpzOo6S+qECrsx2ifVQAAAABJRU5ErkJggg==');
|
||||||
|
}
|
||||||
|
|
||||||
|
div.callout-tip.callout-style-default .callout-title {
|
||||||
|
background-color: #ccf1e3
|
||||||
|
}
|
||||||
|
|
||||||
|
div.callout-caution {
|
||||||
|
border-left-color: #fd7e14 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.callout-caution .callout-icon::before {
|
||||||
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAACV0lEQVRYCdVWzWoUQRCuqp2ICBLJXgITZL1EfQDBW/bkzUMUD7klD+ATSHBEfAIfQO+iXsWDxJsHL96EHAwhgzlkg8nBg25XWb0zIb0zs9muYYWkoKeru+vn664fBqElyZNuyh167NXJ8Ut8McjbmEraKHkd7uAnAFku+VWdb3reSmRV8PKSLfZ0Gjn3a6Xlcq9YGb6tADjn+lUfTXtVmaZ1KwBIvFI11rRXlWlatwIAAv2asaa9mlB9wwygiDX26qaw1yYPzFXg2N1GgG0FMF8Oj+VIx7E/03lHx8UhvYyNZLN7BwSPgekXXLribw7w5/c8EF+DBK5idvDVYtEEwMeYefjjLAdEyQ3M9nfOkgnPTEkYU+sxMq0BxNR6jExrAI31H1rzvLEfRIdgcv1XEdj6QTQAS2wtstEALLG1yEZ3QhH6oDX7ExBSFEkFINXH98NTrme5IOaaA7kIfiu2L8A3qhH9zRbukdCqdsA98TdElyeMe5BI8Rs2xHRIsoTSSVFfCFCWGPn9XHb4cdobRIWABNf0add9jakDjQJpJ1bTXOJXnnRXHRf+dNL1ZV1MBRCXhMbaHqGI1JkKIL7+i8uffuP6wVQAzO7+qVEbF6NbS0LJureYcWXUUhH66nLR5rYmva+2tjRFtojkM2aD76HEGAD3tPtKM309FJg5j/K682ywcWJ3PASCcycH/22u+Bh7Aa0ehM2Fu4z0SAE81HF9RkB21c5bEn4Dzw+/qNOyXr3DCTQDMBOdhi4nAgiFDGCinIa2owCEChUwD8qzd03PG+qdW/4fDzjUMcE1ZpIAAAAASUVORK5CYII=');
|
||||||
|
}
|
||||||
|
|
||||||
|
div.callout-caution.callout-style-default .callout-title {
|
||||||
|
background-color: #ffe5d0
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<style type="text/css">
|
||||||
|
.reveal div.sourceCode {
|
||||||
|
margin: 0;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
.reveal div.hanging-indent {
|
||||||
|
margin-left: 1em;
|
||||||
|
text-indent: -1em;
|
||||||
|
}
|
||||||
|
.reveal .slide:not(.center) {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.reveal .slide.scrollable {
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
.reveal .footnotes {
|
||||||
|
height: 100%;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
.reveal .slide .absolute {
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.reveal .footnotes ol {
|
||||||
|
counter-reset: ol;
|
||||||
|
list-style-type: none;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.reveal .footnotes ol li:before {
|
||||||
|
counter-increment: ol;
|
||||||
|
content: counter(ol) ". ";
|
||||||
|
}
|
||||||
|
.reveal .footnotes ol li > p:first-child {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
.reveal .slide ul,
|
||||||
|
.reveal .slide ol {
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
.reveal .slide ul li,
|
||||||
|
.reveal .slide ol li {
|
||||||
|
margin-top: 0.4em;
|
||||||
|
margin-bottom: 0.2em;
|
||||||
|
}
|
||||||
|
.reveal .slide ul[role="tablist"] li {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
.reveal .slide ul li > *:first-child,
|
||||||
|
.reveal .slide ol li > *:first-child {
|
||||||
|
margin-block-start: 0;
|
||||||
|
}
|
||||||
|
.reveal .slide ul li > *:last-child,
|
||||||
|
.reveal .slide ol li > *:last-child {
|
||||||
|
margin-block-end: 0;
|
||||||
|
}
|
||||||
|
.reveal .slide .columns:nth-child(3) {
|
||||||
|
margin-block-start: 0.8em;
|
||||||
|
}
|
||||||
|
.reveal blockquote {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.reveal .tippy-content>* {
|
||||||
|
margin-top: 0.2em;
|
||||||
|
margin-bottom: 0.7em;
|
||||||
|
}
|
||||||
|
.reveal .tippy-content>*:last-child {
|
||||||
|
margin-bottom: 0.2em;
|
||||||
|
}
|
||||||
|
.reveal .slide > img.stretch.quarto-figure-center,
|
||||||
|
.reveal .slide > img.r-stretch.quarto-figure-center {
|
||||||
|
display: block;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
.reveal .slide > img.stretch.quarto-figure-left,
|
||||||
|
.reveal .slide > img.r-stretch.quarto-figure-left {
|
||||||
|
display: block;
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
.reveal .slide > img.stretch.quarto-figure-right,
|
||||||
|
.reveal .slide > img.r-stretch.quarto-figure-right {
|
||||||
|
display: block;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body class="quarto-light">
|
||||||
|
<div class="reveal">
|
||||||
|
<div class="slides">
|
||||||
|
|
||||||
|
<section id="title-slide" class="quarto-title-block center">
|
||||||
|
<h1 class="title">文章讨论</h1>
|
||||||
|
|
||||||
|
<div class="quarto-title-authors">
|
||||||
|
<div class="quarto-title-author">
|
||||||
|
<div class="quarto-title-author-name">
|
||||||
|
<a href="https://drwater.rcees.ac.cn">Ming Su</a> <a href="https://orcid.org/0000-0001-9821-1268" class="quarto-title-author-orcid"> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMjA4MDI1MjA2ODExOTk0QzkzNTEzRjZEQTg1NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozM0NDOEJGNEZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozM0NDOEJGM0ZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDN0YxMTc0MDcyMDY4MTE5NUZFRDc5MUM2MUUwNEREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3Q0QyMDgwMjUyMDY4MTE5OTRDOTM1MTNGNkRBODU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+84NovQAAAR1JREFUeNpiZEADy85ZJgCpeCB2QJM6AMQLo4yOL0AWZETSqACk1gOxAQN+cAGIA4EGPQBxmJA0nwdpjjQ8xqArmczw5tMHXAaALDgP1QMxAGqzAAPxQACqh4ER6uf5MBlkm0X4EGayMfMw/Pr7Bd2gRBZogMFBrv01hisv5jLsv9nLAPIOMnjy8RDDyYctyAbFM2EJbRQw+aAWw/LzVgx7b+cwCHKqMhjJFCBLOzAR6+lXX84xnHjYyqAo5IUizkRCwIENQQckGSDGY4TVgAPEaraQr2a4/24bSuoExcJCfAEJihXkWDj3ZAKy9EJGaEo8T0QSxkjSwORsCAuDQCD+QILmD1A9kECEZgxDaEZhICIzGcIyEyOl2RkgwAAhkmC+eAm0TAAAAABJRU5ErkJggg=="></a>
|
||||||
|
</div>
|
||||||
|
<div class="quarto-title-author-email">
|
||||||
|
<a href="mailto:mingsu@rcees.ac.cn">mingsu@rcees.ac.cn</a>
|
||||||
|
</div>
|
||||||
|
<p class="quarto-title-affiliation">
|
||||||
|
<a href="https://www.skleac.ac.cn">
|
||||||
|
State Key Laboratory of Environmental Aquatic Chemistry, Research Center for Eco-Environmental Sciences, Chinese Academy of Sciences
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p class="quarto-title-affiliation">
|
||||||
|
<a href="https://www.ucas.ac.cn">
|
||||||
|
University of Chinese Academy of Sciences
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="quarto-title-author">
|
||||||
|
<div class="quarto-title-author-name">
|
||||||
|
Min Yang
|
||||||
|
</div>
|
||||||
|
<div class="quarto-title-author-email">
|
||||||
|
<a href="mailto:yangmin@rcees.ac.cn">yangmin@rcees.ac.cn</a>
|
||||||
|
</div>
|
||||||
|
<p class="quarto-title-affiliation">
|
||||||
|
<a href="https://www.skleac.ac.cn">
|
||||||
|
State Key Laboratory of Environmental Aquatic Chemistry, Research Center for Eco-Environmental Sciences, Chinese Academy of Sciences
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p class="quarto-title-affiliation">
|
||||||
|
<a href="https://www.ucas.ac.cn">
|
||||||
|
University of Chinese Academy of Sciences
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p class="date">2023-11-10</p>
|
||||||
|
</section>
|
||||||
|
<section class="slide level2">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="footer footer-default">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>window.backupDefine = window.define; window.define = undefined;</script>
|
||||||
|
<script src="../../site_libs/revealjs/dist/reveal.js"></script>
|
||||||
|
<!-- reveal.js plugins -->
|
||||||
|
<script src="../../site_libs/revealjs/plugin/quarto-line-highlight/line-highlight.js"></script>
|
||||||
|
<script src="../../site_libs/revealjs/plugin/pdf-export/pdfexport.js"></script>
|
||||||
|
<script src="../../site_libs/revealjs/plugin/reveal-menu/menu.js"></script>
|
||||||
|
<script src="../../site_libs/revealjs/plugin/reveal-menu/quarto-menu.js"></script>
|
||||||
|
<script src="../../site_libs/revealjs/plugin/quarto-support/support.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="../../site_libs/revealjs/plugin/notes/notes.js"></script>
|
||||||
|
<script src="../../site_libs/revealjs/plugin/search/search.js"></script>
|
||||||
|
<script src="../../site_libs/revealjs/plugin/zoom/zoom.js"></script>
|
||||||
|
<script src="../../site_libs/revealjs/plugin/math/math.js"></script>
|
||||||
|
<script>window.define = window.backupDefine; window.backupDefine = undefined;</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
// Full list of configuration options available at:
|
||||||
|
// https://revealjs.com/config/
|
||||||
|
Reveal.initialize({
|
||||||
|
'controlsAuto': true,
|
||||||
|
'previewLinksAuto': false,
|
||||||
|
'pdfSeparateFragments': false,
|
||||||
|
'autoAnimateEasing': "ease",
|
||||||
|
'autoAnimateDuration': 1,
|
||||||
|
'autoAnimateUnmatched': true,
|
||||||
|
'menu': {"side":"left","useTextContentForMissingTitles":true,"markers":false,"loadIcons":false,"custom":[{"title":"Tools","icon":"<i class=\"fas fa-gear\"></i>","content":"<ul class=\"slide-menu-items\">\n<li class=\"slide-tool-item active\" data-item=\"0\"><a href=\"#\" onclick=\"RevealMenuToolHandlers.fullscreen(event)\"><kbd>f</kbd> Fullscreen</a></li>\n<li class=\"slide-tool-item\" data-item=\"1\"><a href=\"#\" onclick=\"RevealMenuToolHandlers.speakerMode(event)\"><kbd>s</kbd> Speaker View</a></li>\n<li class=\"slide-tool-item\" data-item=\"2\"><a href=\"#\" onclick=\"RevealMenuToolHandlers.overview(event)\"><kbd>o</kbd> Slide Overview</a></li>\n<li class=\"slide-tool-item\" data-item=\"3\"><a href=\"#\" onclick=\"RevealMenuToolHandlers.togglePdfExport(event)\"><kbd>e</kbd> PDF Export Mode</a></li>\n<li class=\"slide-tool-item\" data-item=\"4\"><a href=\"#\" onclick=\"RevealMenuToolHandlers.keyboardHelp(event)\"><kbd>?</kbd> Keyboard Help</a></li>\n</ul>"}],"openButton":true},
|
||||||
|
'smaller': false,
|
||||||
|
|
||||||
|
// Display controls in the bottom right corner
|
||||||
|
controls: false,
|
||||||
|
|
||||||
|
// Help the user learn the controls by providing hints, for example by
|
||||||
|
// bouncing the down arrow when they first encounter a vertical slide
|
||||||
|
controlsTutorial: false,
|
||||||
|
|
||||||
|
// Determines where controls appear, "edges" or "bottom-right"
|
||||||
|
controlsLayout: 'edges',
|
||||||
|
|
||||||
|
// Visibility rule for backwards navigation arrows; "faded", "hidden"
|
||||||
|
// or "visible"
|
||||||
|
controlsBackArrows: 'faded',
|
||||||
|
|
||||||
|
// Display a presentation progress bar
|
||||||
|
progress: true,
|
||||||
|
|
||||||
|
// Display the page number of the current slide
|
||||||
|
slideNumber: false,
|
||||||
|
|
||||||
|
// 'all', 'print', or 'speaker'
|
||||||
|
showSlideNumber: 'all',
|
||||||
|
|
||||||
|
// Add the current slide number to the URL hash so that reloading the
|
||||||
|
// page/copying the URL will return you to the same slide
|
||||||
|
hash: true,
|
||||||
|
|
||||||
|
// Start with 1 for the hash rather than 0
|
||||||
|
hashOneBasedIndex: false,
|
||||||
|
|
||||||
|
// Flags if we should monitor the hash and change slides accordingly
|
||||||
|
respondToHashChanges: true,
|
||||||
|
|
||||||
|
// Push each slide change to the browser history
|
||||||
|
history: true,
|
||||||
|
|
||||||
|
// Enable keyboard shortcuts for navigation
|
||||||
|
keyboard: true,
|
||||||
|
|
||||||
|
// Enable the slide overview mode
|
||||||
|
overview: true,
|
||||||
|
|
||||||
|
// Disables the default reveal.js slide layout (scaling and centering)
|
||||||
|
// so that you can use custom CSS layout
|
||||||
|
disableLayout: false,
|
||||||
|
|
||||||
|
// Vertical centering of slides
|
||||||
|
center: false,
|
||||||
|
|
||||||
|
// Enables touch navigation on devices with touch input
|
||||||
|
touch: true,
|
||||||
|
|
||||||
|
// Loop the presentation
|
||||||
|
loop: false,
|
||||||
|
|
||||||
|
// Change the presentation direction to be RTL
|
||||||
|
rtl: false,
|
||||||
|
|
||||||
|
// see https://revealjs.com/vertical-slides/#navigation-mode
|
||||||
|
navigationMode: 'linear',
|
||||||
|
|
||||||
|
// Randomizes the order of slides each time the presentation loads
|
||||||
|
shuffle: false,
|
||||||
|
|
||||||
|
// Turns fragments on and off globally
|
||||||
|
fragments: true,
|
||||||
|
|
||||||
|
// Flags whether to include the current fragment in the URL,
|
||||||
|
// so that reloading brings you to the same fragment position
|
||||||
|
fragmentInURL: false,
|
||||||
|
|
||||||
|
// Flags if the presentation is running in an embedded mode,
|
||||||
|
// i.e. contained within a limited portion of the screen
|
||||||
|
embedded: false,
|
||||||
|
|
||||||
|
// Flags if we should show a help overlay when the questionmark
|
||||||
|
// key is pressed
|
||||||
|
help: true,
|
||||||
|
|
||||||
|
// Flags if it should be possible to pause the presentation (blackout)
|
||||||
|
pause: true,
|
||||||
|
|
||||||
|
// Flags if speaker notes should be visible to all viewers
|
||||||
|
showNotes: false,
|
||||||
|
|
||||||
|
// Global override for autoplaying embedded media (null/true/false)
|
||||||
|
autoPlayMedia: null,
|
||||||
|
|
||||||
|
// Global override for preloading lazy-loaded iframes (null/true/false)
|
||||||
|
preloadIframes: null,
|
||||||
|
|
||||||
|
// Number of milliseconds between automatically proceeding to the
|
||||||
|
// next slide, disabled when set to 0, this value can be overwritten
|
||||||
|
// by using a data-autoslide attribute on your slides
|
||||||
|
autoSlide: 0,
|
||||||
|
|
||||||
|
// Stop auto-sliding after user input
|
||||||
|
autoSlideStoppable: true,
|
||||||
|
|
||||||
|
// Use this method for navigation when auto-sliding
|
||||||
|
autoSlideMethod: null,
|
||||||
|
|
||||||
|
// Specify the average time in seconds that you think you will spend
|
||||||
|
// presenting each slide. This is used to show a pacing timer in the
|
||||||
|
// speaker view
|
||||||
|
defaultTiming: null,
|
||||||
|
|
||||||
|
// Enable slide navigation via mouse wheel
|
||||||
|
mouseWheel: false,
|
||||||
|
|
||||||
|
// The display mode that will be used to show slides
|
||||||
|
display: 'block',
|
||||||
|
|
||||||
|
// Hide cursor if inactive
|
||||||
|
hideInactiveCursor: true,
|
||||||
|
|
||||||
|
// Time before the cursor is hidden (in ms)
|
||||||
|
hideCursorTime: 5000,
|
||||||
|
|
||||||
|
// Opens links in an iframe preview overlay
|
||||||
|
previewLinks: false,
|
||||||
|
|
||||||
|
// Transition style (none/fade/slide/convex/concave/zoom)
|
||||||
|
transition: 'none',
|
||||||
|
|
||||||
|
// Transition speed (default/fast/slow)
|
||||||
|
transitionSpeed: 'default',
|
||||||
|
|
||||||
|
// Transition style for full page slide backgrounds
|
||||||
|
// (none/fade/slide/convex/concave/zoom)
|
||||||
|
backgroundTransition: 'none',
|
||||||
|
|
||||||
|
// Number of slides away from the current that are visible
|
||||||
|
viewDistance: 3,
|
||||||
|
|
||||||
|
// Number of slides away from the current that are visible on mobile
|
||||||
|
// devices. It is advisable to set this to a lower number than
|
||||||
|
// viewDistance in order to save resources.
|
||||||
|
mobileViewDistance: 2,
|
||||||
|
|
||||||
|
// The "normal" size of the presentation, aspect ratio will be preserved
|
||||||
|
// when the presentation is scaled to fit different resolutions. Can be
|
||||||
|
// specified using percentage units.
|
||||||
|
width: 1050,
|
||||||
|
|
||||||
|
height: 700,
|
||||||
|
|
||||||
|
// Factor of the display size that should remain empty around the content
|
||||||
|
margin: 0.1,
|
||||||
|
|
||||||
|
math: {
|
||||||
|
mathjax: 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js',
|
||||||
|
config: 'TeX-AMS_HTML-full',
|
||||||
|
tex2jax: {
|
||||||
|
inlineMath: [['\\(','\\)']],
|
||||||
|
displayMath: [['\\[','\\]']],
|
||||||
|
balanceBraces: true,
|
||||||
|
processEscapes: false,
|
||||||
|
processRefs: true,
|
||||||
|
processEnvironments: true,
|
||||||
|
preview: 'TeX',
|
||||||
|
skipTags: ['script','noscript','style','textarea','pre','code'],
|
||||||
|
ignoreClass: 'tex2jax_ignore',
|
||||||
|
processClass: 'tex2jax_process'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
// reveal.js plugins
|
||||||
|
plugins: [QuartoLineHighlight, PdfExport, RevealMenu, QuartoSupport,
|
||||||
|
|
||||||
|
RevealMath,
|
||||||
|
RevealNotes,
|
||||||
|
RevealSearch,
|
||||||
|
RevealZoom
|
||||||
|
]
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<script id="quarto-html-after-body" type="application/javascript">
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (event) {
|
||||||
|
const toggleBodyColorMode = (bsSheetEl) => {
|
||||||
|
const mode = bsSheetEl.getAttribute("data-mode");
|
||||||
|
const bodyEl = window.document.querySelector("body");
|
||||||
|
if (mode === "dark") {
|
||||||
|
bodyEl.classList.add("quarto-dark");
|
||||||
|
bodyEl.classList.remove("quarto-light");
|
||||||
|
} else {
|
||||||
|
bodyEl.classList.add("quarto-light");
|
||||||
|
bodyEl.classList.remove("quarto-dark");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const toggleBodyColorPrimary = () => {
|
||||||
|
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
||||||
|
if (bsSheetEl) {
|
||||||
|
toggleBodyColorMode(bsSheetEl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toggleBodyColorPrimary();
|
||||||
|
const tabsets = window.document.querySelectorAll(".panel-tabset-tabby")
|
||||||
|
tabsets.forEach(function(tabset) {
|
||||||
|
const tabby = new Tabby('#' + tabset.id);
|
||||||
|
});
|
||||||
|
const isCodeAnnotation = (el) => {
|
||||||
|
for (const clz of el.classList) {
|
||||||
|
if (clz.startsWith('code-annotation-')) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const clipboard = new window.ClipboardJS('.code-copy-button', {
|
||||||
|
text: function(trigger) {
|
||||||
|
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
||||||
|
for (const childEl of codeEl.children) {
|
||||||
|
if (isCodeAnnotation(childEl)) {
|
||||||
|
childEl.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return codeEl.innerText;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
clipboard.on('success', function(e) {
|
||||||
|
// button target
|
||||||
|
const button = e.trigger;
|
||||||
|
// don't keep focus
|
||||||
|
button.blur();
|
||||||
|
// flash "checked"
|
||||||
|
button.classList.add('code-copy-button-checked');
|
||||||
|
var currentTitle = button.getAttribute("title");
|
||||||
|
button.setAttribute("title", "Copied!");
|
||||||
|
let tooltip;
|
||||||
|
if (window.bootstrap) {
|
||||||
|
button.setAttribute("data-bs-toggle", "tooltip");
|
||||||
|
button.setAttribute("data-bs-placement", "left");
|
||||||
|
button.setAttribute("data-bs-title", "Copied!");
|
||||||
|
tooltip = new bootstrap.Tooltip(button,
|
||||||
|
{ trigger: "manual",
|
||||||
|
customClass: "code-copy-button-tooltip",
|
||||||
|
offset: [0, -8]});
|
||||||
|
tooltip.show();
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
|
if (tooltip) {
|
||||||
|
tooltip.hide();
|
||||||
|
button.removeAttribute("data-bs-title");
|
||||||
|
button.removeAttribute("data-bs-toggle");
|
||||||
|
button.removeAttribute("data-bs-placement");
|
||||||
|
}
|
||||||
|
button.setAttribute("title", currentTitle);
|
||||||
|
button.classList.remove('code-copy-button-checked');
|
||||||
|
}, 1000);
|
||||||
|
// clear code selection
|
||||||
|
e.clearSelection();
|
||||||
|
});
|
||||||
|
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
|
||||||
|
const config = {
|
||||||
|
allowHTML: true,
|
||||||
|
maxWidth: 500,
|
||||||
|
delay: 100,
|
||||||
|
arrow: false,
|
||||||
|
appendTo: function(el) {
|
||||||
|
return el.closest('section.slide') || el.parentElement;
|
||||||
|
},
|
||||||
|
interactive: true,
|
||||||
|
interactiveBorder: 10,
|
||||||
|
theme: 'light-border',
|
||||||
|
placement: 'bottom-start',
|
||||||
|
};
|
||||||
|
if (contentFn) {
|
||||||
|
config.content = contentFn;
|
||||||
|
}
|
||||||
|
if (onTriggerFn) {
|
||||||
|
config.onTrigger = onTriggerFn;
|
||||||
|
}
|
||||||
|
if (onUntriggerFn) {
|
||||||
|
config.onUntrigger = onUntriggerFn;
|
||||||
|
}
|
||||||
|
config['offset'] = [0,0];
|
||||||
|
config['maxWidth'] = 700;
|
||||||
|
window.tippy(el, config);
|
||||||
|
}
|
||||||
|
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
||||||
|
for (var i=0; i<noterefs.length; i++) {
|
||||||
|
const ref = noterefs[i];
|
||||||
|
tippyHover(ref, function() {
|
||||||
|
// use id or data attribute instead here
|
||||||
|
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
||||||
|
try { href = new URL(href).hash; } catch {}
|
||||||
|
const id = href.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
return note.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const findCites = (el) => {
|
||||||
|
const parentEl = el.parentElement;
|
||||||
|
if (parentEl) {
|
||||||
|
const cites = parentEl.dataset.cites;
|
||||||
|
if (cites) {
|
||||||
|
return {
|
||||||
|
el,
|
||||||
|
cites: cites.split(' ')
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return findCites(el.parentElement)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
||||||
|
for (var i=0; i<bibliorefs.length; i++) {
|
||||||
|
const ref = bibliorefs[i];
|
||||||
|
const citeInfo = findCites(ref);
|
||||||
|
if (citeInfo) {
|
||||||
|
tippyHover(citeInfo.el, function() {
|
||||||
|
var popup = window.document.createElement('div');
|
||||||
|
citeInfo.cites.forEach(function(cite) {
|
||||||
|
var citeDiv = window.document.createElement('div');
|
||||||
|
citeDiv.classList.add('hanging-indent');
|
||||||
|
citeDiv.classList.add('csl-entry');
|
||||||
|
var biblioDiv = window.document.getElementById('ref-' + cite);
|
||||||
|
if (biblioDiv) {
|
||||||
|
citeDiv.innerHTML = biblioDiv.innerHTML;
|
||||||
|
}
|
||||||
|
popup.appendChild(citeDiv);
|
||||||
|
});
|
||||||
|
return popup.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
</body></html>
|
||||||
+679
@@ -0,0 +1,679 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="generator" content="quarto-1.4.480">
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||||||
|
|
||||||
|
<meta name="author" content="Ming Su">
|
||||||
|
<meta name="author" content="Min Yang">
|
||||||
|
<meta name="dcterms.date" content="2023-11-10">
|
||||||
|
|
||||||
|
<title>Version: main - MANUSCRIPT TITLE</title>
|
||||||
|
<style>
|
||||||
|
code{white-space: pre-wrap;}
|
||||||
|
span.smallcaps{font-variant: small-caps;}
|
||||||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
|
ul.task-list{list-style: none;}
|
||||||
|
ul.task-list li input[type="checkbox"] {
|
||||||
|
width: 0.8em;
|
||||||
|
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="../site_libs/quarto-nav/quarto-nav.js"></script>
|
||||||
|
<script src="../site_libs/quarto-nav/headroom.min.js"></script>
|
||||||
|
<script src="../site_libs/clipboard/clipboard.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/autocomplete.umd.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/fuse.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-search/quarto-search.js"></script>
|
||||||
|
<meta name="quarto:offset" content="../">
|
||||||
|
<script src="../site_libs/quarto-html/quarto.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/popper.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
|
||||||
|
<script src="../site_libs/quarto-html/anchor.min.js"></script>
|
||||||
|
<link href="../site_libs/quarto-html/tippy.css" rel="stylesheet">
|
||||||
|
<link href="../site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
|
||||||
|
<script src="../site_libs/bootstrap/bootstrap.min.js"></script>
|
||||||
|
<link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
|
||||||
|
<link href="../site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
|
||||||
|
<script id="quarto-search-options" type="application/json">{
|
||||||
|
"location": "navbar",
|
||||||
|
"copy-button": false,
|
||||||
|
"collapse-after": 3,
|
||||||
|
"panel-placement": "end",
|
||||||
|
"type": "overlay",
|
||||||
|
"limit": 50,
|
||||||
|
"keyboard-shortcut": [
|
||||||
|
"f",
|
||||||
|
"/",
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
"show-item-context": false,
|
||||||
|
"language": {
|
||||||
|
"search-no-results-text": "No results",
|
||||||
|
"search-matching-documents-text": "matching documents",
|
||||||
|
"search-copy-link-title": "Copy link to search",
|
||||||
|
"search-hide-matches-text": "Hide additional matches",
|
||||||
|
"search-more-match-text": "more match in this document",
|
||||||
|
"search-more-matches-text": "more matches in this document",
|
||||||
|
"search-clear-button-title": "Clear",
|
||||||
|
"search-detached-cancel-button-title": "Cancel",
|
||||||
|
"search-submit-button-title": "Submit",
|
||||||
|
"search-label": "Search"
|
||||||
|
}
|
||||||
|
}</script>
|
||||||
|
<script type="application/json" class="js-hypothesis-config">
|
||||||
|
{
|
||||||
|
"theme": "clean",
|
||||||
|
"openSidebar": false
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script async="" src="https://hypothes.is/embed.js"></script>
|
||||||
|
<script>
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (_event) {
|
||||||
|
document.body.classList.add('hypothesis-enabled');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="../site_libs/quarto-contrib/quarto-project/inst/css/style.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="nav-fixed">
|
||||||
|
|
||||||
|
<div id="quarto-search-results"></div>
|
||||||
|
<header id="quarto-header" class="headroom fixed-top">
|
||||||
|
<nav class="navbar navbar-expand-lg " data-bs-theme="dark">
|
||||||
|
<div class="navbar-container container-fluid">
|
||||||
|
<div class="navbar-brand-container mx-auto">
|
||||||
|
<a class="navbar-brand" href="../index.html">
|
||||||
|
<span class="navbar-title">Version: main</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id="quarto-search" class="" title="Search"></div>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarCollapse">
|
||||||
|
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html"> <i class="bi bi-house" role="img">
|
||||||
|
</i>
|
||||||
|
<span class="menu-text">Home</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/MS.html">
|
||||||
|
<span class="menu-text">Manuscript</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/SM.html">
|
||||||
|
<span class="menu-text">Supplementary Materials</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../MS/RN.html">
|
||||||
|
<span class="menu-text">Revision Notes</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" href="../SD/index.html" aria-current="page">
|
||||||
|
<span class="menu-text">Slides</span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-other" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<span class="menu-text">Other</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-other">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/HL.html">
|
||||||
|
<span class="dropdown-text">Highlights</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/CL.html">
|
||||||
|
<span class="dropdown-text">Cover Letter</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../MS/AC.html">
|
||||||
|
<span class="dropdown-text">Author Credits</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../TC/index.html">
|
||||||
|
<span class="dropdown-text">Trackchanges</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../RP/index.html">
|
||||||
|
<span class="dropdown-text">Report</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="../AC/index.html">
|
||||||
|
<span class="dropdown-text">Acomplishment</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown ">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="nav-menu-bi-git" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="bi bi-git" role="img">
|
||||||
|
</i>
|
||||||
|
<span class="menu-text"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="nav-menu-bi-git">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/_edit/">
|
||||||
|
<span class="dropdown-text">Edit</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/issues">
|
||||||
|
<span class="dropdown-text">Issue</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div> <!-- /navcollapse -->
|
||||||
|
<div class="quarto-navbar-tools">
|
||||||
|
<a href="" class="quarto-reader-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleReader(); return false;" title="Toggle reader mode">
|
||||||
|
<div class="quarto-reader-toggle-btn">
|
||||||
|
<i class="bi"></i>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div> <!-- /container-fluid -->
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<!-- content -->
|
||||||
|
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
|
||||||
|
<!-- sidebar -->
|
||||||
|
<!-- margin-sidebar -->
|
||||||
|
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- main -->
|
||||||
|
<main class="content" id="quarto-document-content">
|
||||||
|
|
||||||
|
<header id="title-block-header" class="quarto-title-block default">
|
||||||
|
<div class="quarto-title">
|
||||||
|
<h1 class="title">MANUSCRIPT TITLE</h1>
|
||||||
|
<p class="subtitle lead">演示材料</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="quarto-title-meta-author">
|
||||||
|
<div class="quarto-title-meta-heading">Authors</div>
|
||||||
|
<div class="quarto-title-meta-heading">Affiliations</div>
|
||||||
|
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="author"><a href="https://drwater.rcees.ac.cn">Ming Su</a> <a href="mailto:mingsu@rcees.ac.cn" class="quarto-title-author-email"><i class="bi bi-envelope"></i></a> <a href="https://orcid.org/0000-0001-9821-1268" class="quarto-title-author-orcid"> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMjA4MDI1MjA2ODExOTk0QzkzNTEzRjZEQTg1NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozM0NDOEJGNEZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozM0NDOEJGM0ZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDN0YxMTc0MDcyMDY4MTE5NUZFRDc5MUM2MUUwNEREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3Q0QyMDgwMjUyMDY4MTE5OTRDOTM1MTNGNkRBODU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+84NovQAAAR1JREFUeNpiZEADy85ZJgCpeCB2QJM6AMQLo4yOL0AWZETSqACk1gOxAQN+cAGIA4EGPQBxmJA0nwdpjjQ8xqArmczw5tMHXAaALDgP1QMxAGqzAAPxQACqh4ER6uf5MBlkm0X4EGayMfMw/Pr7Bd2gRBZogMFBrv01hisv5jLsv9nLAPIOMnjy8RDDyYctyAbFM2EJbRQw+aAWw/LzVgx7b+cwCHKqMhjJFCBLOzAR6+lXX84xnHjYyqAo5IUizkRCwIENQQckGSDGY4TVgAPEaraQr2a4/24bSuoExcJCfAEJihXkWDj3ZAKy9EJGaEo8T0QSxkjSwORsCAuDQCD+QILmD1A9kECEZgxDaEZhICIzGcIyEyOl2RkgwAAhkmC+eAm0TAAAAABJRU5ErkJggg=="></a></p>
|
||||||
|
</div>
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="affiliation">
|
||||||
|
<a href="https://www.skleac.ac.cn">
|
||||||
|
State Key Laboratory of Environmental Aquatic Chemistry, Research Center for Eco-Environmental Sciences, Chinese Academy of Sciences
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p class="affiliation">
|
||||||
|
<a href="https://www.ucas.ac.cn">
|
||||||
|
University of Chinese Academy of Sciences
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="author">Min Yang <a href="mailto:yangmin@rcees.ac.cn" class="quarto-title-author-email"><i class="bi bi-envelope"></i></a> </p>
|
||||||
|
</div>
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="affiliation">
|
||||||
|
<a href="https://www.skleac.ac.cn">
|
||||||
|
State Key Laboratory of Environmental Aquatic Chemistry, Research Center for Eco-Environmental Sciences, Chinese Academy of Sciences
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p class="affiliation">
|
||||||
|
<a href="https://www.ucas.ac.cn">
|
||||||
|
University of Chinese Academy of Sciences
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="quarto-title-meta">
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div class="quarto-title-meta-heading">Published</div>
|
||||||
|
<div class="quarto-title-meta-contents">
|
||||||
|
<p class="date">November 10, 2023</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="cell" data-layout-align="center">
|
||||||
|
<section id="powerpointfileindex.pptx" class="level2">
|
||||||
|
<h2 class="anchored" data-anchor-id="powerpointfileindex.pptx"><a href="20230101_powerpointfile/index.pptx">20230101_powerpointfile/index.pptx</a></h2>
|
||||||
|
</section>
|
||||||
|
<section id="文章讨论index.qmd" class="level2">
|
||||||
|
<h2 class="anchored" data-anchor-id="文章讨论index.qmd"><a href="../SD/20230101_文章讨论/index.html">20230101_文章讨论/index.qmd</a></h2>
|
||||||
|
<iframe title="文章讨论" width="800" height="600" src="20230101_文章讨论/index.html">
|
||||||
|
</iframe>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</main> <!-- /main -->
|
||||||
|
<script id="quarto-html-after-body" type="application/javascript">
|
||||||
|
window.document.addEventListener("DOMContentLoaded", function (event) {
|
||||||
|
const toggleBodyColorMode = (bsSheetEl) => {
|
||||||
|
const mode = bsSheetEl.getAttribute("data-mode");
|
||||||
|
const bodyEl = window.document.querySelector("body");
|
||||||
|
if (mode === "dark") {
|
||||||
|
bodyEl.classList.add("quarto-dark");
|
||||||
|
bodyEl.classList.remove("quarto-light");
|
||||||
|
} else {
|
||||||
|
bodyEl.classList.add("quarto-light");
|
||||||
|
bodyEl.classList.remove("quarto-dark");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const toggleBodyColorPrimary = () => {
|
||||||
|
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
||||||
|
if (bsSheetEl) {
|
||||||
|
toggleBodyColorMode(bsSheetEl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toggleBodyColorPrimary();
|
||||||
|
const icon = "";
|
||||||
|
const anchorJS = new window.AnchorJS();
|
||||||
|
anchorJS.options = {
|
||||||
|
placement: 'right',
|
||||||
|
icon: icon
|
||||||
|
};
|
||||||
|
anchorJS.add('.anchored');
|
||||||
|
const isCodeAnnotation = (el) => {
|
||||||
|
for (const clz of el.classList) {
|
||||||
|
if (clz.startsWith('code-annotation-')) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const clipboard = new window.ClipboardJS('.code-copy-button', {
|
||||||
|
text: function(trigger) {
|
||||||
|
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
||||||
|
for (const childEl of codeEl.children) {
|
||||||
|
if (isCodeAnnotation(childEl)) {
|
||||||
|
childEl.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return codeEl.innerText;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
clipboard.on('success', function(e) {
|
||||||
|
// button target
|
||||||
|
const button = e.trigger;
|
||||||
|
// don't keep focus
|
||||||
|
button.blur();
|
||||||
|
// flash "checked"
|
||||||
|
button.classList.add('code-copy-button-checked');
|
||||||
|
var currentTitle = button.getAttribute("title");
|
||||||
|
button.setAttribute("title", "Copied!");
|
||||||
|
let tooltip;
|
||||||
|
if (window.bootstrap) {
|
||||||
|
button.setAttribute("data-bs-toggle", "tooltip");
|
||||||
|
button.setAttribute("data-bs-placement", "left");
|
||||||
|
button.setAttribute("data-bs-title", "Copied!");
|
||||||
|
tooltip = new bootstrap.Tooltip(button,
|
||||||
|
{ trigger: "manual",
|
||||||
|
customClass: "code-copy-button-tooltip",
|
||||||
|
offset: [0, -8]});
|
||||||
|
tooltip.show();
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
|
if (tooltip) {
|
||||||
|
tooltip.hide();
|
||||||
|
button.removeAttribute("data-bs-title");
|
||||||
|
button.removeAttribute("data-bs-toggle");
|
||||||
|
button.removeAttribute("data-bs-placement");
|
||||||
|
}
|
||||||
|
button.setAttribute("title", currentTitle);
|
||||||
|
button.classList.remove('code-copy-button-checked');
|
||||||
|
}, 1000);
|
||||||
|
// clear code selection
|
||||||
|
e.clearSelection();
|
||||||
|
});
|
||||||
|
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
|
||||||
|
const config = {
|
||||||
|
allowHTML: true,
|
||||||
|
maxWidth: 500,
|
||||||
|
delay: 100,
|
||||||
|
arrow: false,
|
||||||
|
appendTo: function(el) {
|
||||||
|
return el.parentElement;
|
||||||
|
},
|
||||||
|
interactive: true,
|
||||||
|
interactiveBorder: 10,
|
||||||
|
theme: 'quarto',
|
||||||
|
placement: 'bottom-start',
|
||||||
|
};
|
||||||
|
if (contentFn) {
|
||||||
|
config.content = contentFn;
|
||||||
|
}
|
||||||
|
if (onTriggerFn) {
|
||||||
|
config.onTrigger = onTriggerFn;
|
||||||
|
}
|
||||||
|
if (onUntriggerFn) {
|
||||||
|
config.onUntrigger = onUntriggerFn;
|
||||||
|
}
|
||||||
|
window.tippy(el, config);
|
||||||
|
}
|
||||||
|
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
||||||
|
for (var i=0; i<noterefs.length; i++) {
|
||||||
|
const ref = noterefs[i];
|
||||||
|
tippyHover(ref, function() {
|
||||||
|
// use id or data attribute instead here
|
||||||
|
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
||||||
|
try { href = new URL(href).hash; } catch {}
|
||||||
|
const id = href.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
return note.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const xrefs = window.document.querySelectorAll('a.quarto-xref');
|
||||||
|
const processXRef = (id, note) => {
|
||||||
|
// Strip column container classes
|
||||||
|
const stripColumnClz = (el) => {
|
||||||
|
el.classList.remove("page-full", "page-columns");
|
||||||
|
if (el.children) {
|
||||||
|
for (const child of el.children) {
|
||||||
|
stripColumnClz(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stripColumnClz(note)
|
||||||
|
const typesetMath = (el) => {
|
||||||
|
if (window.MathJax) {
|
||||||
|
// MathJax Typeset
|
||||||
|
window.MathJax.typeset([el]);
|
||||||
|
} else if (window.katex) {
|
||||||
|
// KaTeX Render
|
||||||
|
var mathElements = el.getElementsByClassName("math");
|
||||||
|
var macros = [];
|
||||||
|
for (var i = 0; i < mathElements.length; i++) {
|
||||||
|
var texText = mathElements[i].firstChild;
|
||||||
|
if (mathElements[i].tagName == "SPAN") {
|
||||||
|
window.katex.render(texText.data, mathElements[i], {
|
||||||
|
displayMode: mathElements[i].classList.contains('display'),
|
||||||
|
throwOnError: false,
|
||||||
|
macros: macros,
|
||||||
|
fleqn: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (id === null || id.startsWith('sec-')) {
|
||||||
|
// Special case sections, only their first couple elements
|
||||||
|
const container = document.createElement("div");
|
||||||
|
if (note.children && note.children.length > 2) {
|
||||||
|
for (let i = 0; i < 2; i++) {
|
||||||
|
container.appendChild(note.children[i].cloneNode(true));
|
||||||
|
}
|
||||||
|
typesetMath(container);
|
||||||
|
return container.innerHTML
|
||||||
|
} else {
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Remove any anchor links if they are present
|
||||||
|
const anchorLink = note.querySelector('a.anchorjs-link');
|
||||||
|
if (anchorLink) {
|
||||||
|
anchorLink.remove();
|
||||||
|
}
|
||||||
|
typesetMath(note);
|
||||||
|
return note.innerHTML;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (var i=0; i<xrefs.length; i++) {
|
||||||
|
const xref = xrefs[i];
|
||||||
|
tippyHover(xref, undefined, function(instance) {
|
||||||
|
instance.disable();
|
||||||
|
let url = xref.getAttribute('href');
|
||||||
|
let hash = undefined;
|
||||||
|
if (url.startsWith('#')) {
|
||||||
|
hash = url;
|
||||||
|
} else {
|
||||||
|
try { hash = new URL(url).hash; } catch {}
|
||||||
|
}
|
||||||
|
if (hash) {
|
||||||
|
const id = hash.replace(/^#\/?/, "");
|
||||||
|
const note = window.document.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
try {
|
||||||
|
const html = processXRef(id, note.cloneNode(true));
|
||||||
|
instance.setContent(html);
|
||||||
|
} finally {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch this
|
||||||
|
fetch(url.split('#')[0])
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.getElementById(id);
|
||||||
|
if (note !== null) {
|
||||||
|
const html = processXRef(id, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// See if we can fetch a full url (with no hash to target)
|
||||||
|
// This is a special case and we should probably do some content thinning / targeting
|
||||||
|
fetch(url)
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(html => {
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const htmlDoc = parser.parseFromString(html, "text/html");
|
||||||
|
const note = htmlDoc.querySelector('main.content');
|
||||||
|
if (note !== null) {
|
||||||
|
// This should only happen for chapter cross references
|
||||||
|
// (since there is no id in the URL)
|
||||||
|
// remove the first header
|
||||||
|
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
|
||||||
|
note.children[0].remove();
|
||||||
|
}
|
||||||
|
const html = processXRef(null, note);
|
||||||
|
instance.setContent(html);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
instance.enable();
|
||||||
|
instance.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, function(instance) {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let selectedAnnoteEl;
|
||||||
|
const selectorForAnnotation = ( cell, annotation) => {
|
||||||
|
let cellAttr = 'data-code-cell="' + cell + '"';
|
||||||
|
let lineAttr = 'data-code-annotation="' + annotation + '"';
|
||||||
|
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
|
||||||
|
return selector;
|
||||||
|
}
|
||||||
|
const selectCodeLines = (annoteEl) => {
|
||||||
|
const doc = window.document;
|
||||||
|
const targetCell = annoteEl.getAttribute("data-target-cell");
|
||||||
|
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
|
||||||
|
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
|
||||||
|
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
|
||||||
|
const lineIds = lines.map((line) => {
|
||||||
|
return targetCell + "-" + line;
|
||||||
|
})
|
||||||
|
let top = null;
|
||||||
|
let height = null;
|
||||||
|
let parent = null;
|
||||||
|
if (lineIds.length > 0) {
|
||||||
|
//compute the position of the single el (top and bottom and make a div)
|
||||||
|
const el = window.document.getElementById(lineIds[0]);
|
||||||
|
top = el.offsetTop;
|
||||||
|
height = el.offsetHeight;
|
||||||
|
parent = el.parentElement.parentElement;
|
||||||
|
if (lineIds.length > 1) {
|
||||||
|
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
|
||||||
|
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
|
||||||
|
height = bottom - top;
|
||||||
|
}
|
||||||
|
if (top !== null && height !== null && parent !== null) {
|
||||||
|
// cook up a div (if necessary) and position it
|
||||||
|
let div = window.document.getElementById("code-annotation-line-highlight");
|
||||||
|
if (div === null) {
|
||||||
|
div = window.document.createElement("div");
|
||||||
|
div.setAttribute("id", "code-annotation-line-highlight");
|
||||||
|
div.style.position = 'absolute';
|
||||||
|
parent.appendChild(div);
|
||||||
|
}
|
||||||
|
div.style.top = top - 2 + "px";
|
||||||
|
div.style.height = height + 4 + "px";
|
||||||
|
div.style.left = 0;
|
||||||
|
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
|
||||||
|
if (gutterDiv === null) {
|
||||||
|
gutterDiv = window.document.createElement("div");
|
||||||
|
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
|
||||||
|
gutterDiv.style.position = 'absolute';
|
||||||
|
const codeCell = window.document.getElementById(targetCell);
|
||||||
|
const gutter = codeCell.querySelector('.code-annotation-gutter');
|
||||||
|
gutter.appendChild(gutterDiv);
|
||||||
|
}
|
||||||
|
gutterDiv.style.top = top - 2 + "px";
|
||||||
|
gutterDiv.style.height = height + 4 + "px";
|
||||||
|
}
|
||||||
|
selectedAnnoteEl = annoteEl;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const unselectCodeLines = () => {
|
||||||
|
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
|
||||||
|
elementsIds.forEach((elId) => {
|
||||||
|
const div = window.document.getElementById(elId);
|
||||||
|
if (div) {
|
||||||
|
div.remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
selectedAnnoteEl = undefined;
|
||||||
|
};
|
||||||
|
// Handle positioning of the toggle
|
||||||
|
window.addEventListener(
|
||||||
|
"resize",
|
||||||
|
throttle(() => {
|
||||||
|
elRect = undefined;
|
||||||
|
if (selectedAnnoteEl) {
|
||||||
|
selectCodeLines(selectedAnnoteEl);
|
||||||
|
}
|
||||||
|
}, 10)
|
||||||
|
);
|
||||||
|
function throttle(fn, ms) {
|
||||||
|
let throttle = false;
|
||||||
|
let timer;
|
||||||
|
return (...args) => {
|
||||||
|
if(!throttle) { // first call gets through
|
||||||
|
fn.apply(this, args);
|
||||||
|
throttle = true;
|
||||||
|
} else { // all the others get throttled
|
||||||
|
if(timer) clearTimeout(timer); // cancel #2
|
||||||
|
timer = setTimeout(() => {
|
||||||
|
fn.apply(this, args);
|
||||||
|
timer = throttle = false;
|
||||||
|
}, ms);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// Attach click handler to the DT
|
||||||
|
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
|
||||||
|
for (const annoteDlNode of annoteDls) {
|
||||||
|
annoteDlNode.addEventListener('click', (event) => {
|
||||||
|
const clickedEl = event.target;
|
||||||
|
if (clickedEl !== selectedAnnoteEl) {
|
||||||
|
unselectCodeLines();
|
||||||
|
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
|
||||||
|
if (activeEl) {
|
||||||
|
activeEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
selectCodeLines(clickedEl);
|
||||||
|
clickedEl.classList.add('code-annotation-active');
|
||||||
|
} else {
|
||||||
|
// Unselect the line
|
||||||
|
unselectCodeLines();
|
||||||
|
clickedEl.classList.remove('code-annotation-active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const findCites = (el) => {
|
||||||
|
const parentEl = el.parentElement;
|
||||||
|
if (parentEl) {
|
||||||
|
const cites = parentEl.dataset.cites;
|
||||||
|
if (cites) {
|
||||||
|
return {
|
||||||
|
el,
|
||||||
|
cites: cites.split(' ')
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return findCites(el.parentElement)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
||||||
|
for (var i=0; i<bibliorefs.length; i++) {
|
||||||
|
const ref = bibliorefs[i];
|
||||||
|
const citeInfo = findCites(ref);
|
||||||
|
if (citeInfo) {
|
||||||
|
tippyHover(citeInfo.el, function() {
|
||||||
|
var popup = window.document.createElement('div');
|
||||||
|
citeInfo.cites.forEach(function(cite) {
|
||||||
|
var citeDiv = window.document.createElement('div');
|
||||||
|
citeDiv.classList.add('hanging-indent');
|
||||||
|
citeDiv.classList.add('csl-entry');
|
||||||
|
var biblioDiv = window.document.getElementById('ref-' + cite);
|
||||||
|
if (biblioDiv) {
|
||||||
|
citeDiv.innerHTML = biblioDiv.innerHTML;
|
||||||
|
}
|
||||||
|
popup.appendChild(citeDiv);
|
||||||
|
});
|
||||||
|
return popup.innerHTML;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div> <!-- /content -->
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="nav-footer">
|
||||||
|
<div class="nav-footer-left">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="nav-footer-center">
|
||||||
|
<p>Copyright 2023, <a href="https://drwater.rcees.ac.cn">Ming Su</a></p>
|
||||||
|
<div class="toc-actions"><ul><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/edit/main/SD/index.qmd" class="toc-action"><i class="bi bi-git"></i>Edit this page</a></li><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/blob/main/SD/index.qmd" class="toc-action"><i class="bi empty"></i>View source</a></li><li><a href="https://drwater.rcees.ac.cn/git/manuscript/su2023temp/src/branch/main/issues/new" class="toc-action"><i class="bi empty"></i>Report an issue</a></li></ul></div></div>
|
||||||
|
<div class="nav-footer-right">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body></html>
|
||||||
@@ -2,8 +2,6 @@
|
|||||||
subtitle: "演示材料"
|
subtitle: "演示材料"
|
||||||
---
|
---
|
||||||
|
|
||||||
<iframe title="项目启动汇报" width=800 height=600 src = "./20230101_项目启动/index.html"></iframe>
|
|
||||||
|
|
||||||
```{r}
|
```{r}
|
||||||
#| include: false
|
#| include: false
|
||||||
require(drwateR)
|
require(drwateR)
|
||||||
|
|||||||
+8
-9
@@ -67,15 +67,6 @@ website:
|
|||||||
- icon: house
|
- icon: house
|
||||||
text: "Home"
|
text: "Home"
|
||||||
file: index.qmd
|
file: index.qmd
|
||||||
menu:
|
|
||||||
- text: "Highlights"
|
|
||||||
file: MS/HL.qmd
|
|
||||||
- text: "Cover Letter"
|
|
||||||
file: MS/CL.qmd
|
|
||||||
- text: "Author Credits"
|
|
||||||
file: MS/AC.qmd
|
|
||||||
- text: "Trackchanges"
|
|
||||||
file: TC/index.qmd
|
|
||||||
- text: "Manuscript"
|
- text: "Manuscript"
|
||||||
file: MS/MS.qmd
|
file: MS/MS.qmd
|
||||||
- text: "Supplementary Materials"
|
- text: "Supplementary Materials"
|
||||||
@@ -86,6 +77,14 @@ website:
|
|||||||
file: SD/index.qmd
|
file: SD/index.qmd
|
||||||
- text: "Other"
|
- text: "Other"
|
||||||
menu:
|
menu:
|
||||||
|
- text: "Highlights"
|
||||||
|
file: MS/HL.qmd
|
||||||
|
- text: "Cover Letter"
|
||||||
|
file: MS/CL.qmd
|
||||||
|
- text: "Author Credits"
|
||||||
|
file: MS/AC.qmd
|
||||||
|
- text: "Trackchanges"
|
||||||
|
file: TC/index.qmd
|
||||||
- text: "Report"
|
- text: "Report"
|
||||||
file: RP/index.qmd
|
file: RP/index.qmd
|
||||||
- text: "Acomplishment"
|
- text: "Acomplishment"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: "Home"
|
subtitle: "Abstract"
|
||||||
|
author: ""
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* other quarto variables */
|
/* other quarto variables */
|
||||||
|
:root {
|
||||||
|
--quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||||
|
}
|
||||||
|
|
||||||
pre > code.sourceCode > span {
|
pre > code.sourceCode > span {
|
||||||
color: #003B4F;
|
color: #003B4F;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user