add _extensions

This commit is contained in:
2026-05-21 13:37:53 +08:00
parent 6a9a5fc90e
commit 61bd0bea2f
252 changed files with 33972 additions and 1 deletions
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+280
View File
@@ -0,0 +1,280 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" page-range-format="expanded" default-locale="en-US">
<info>
<title>American Chemical Society</title>
<title-short>ACS</title-short>
<id>http://www.zotero.org/styles/american-chemical-society</id>
<link href="http://www.zotero.org/styles/american-chemical-society" rel="self"/>
<link href="https://pubs.acs.org/doi/full/10.1021/acsguide.40303" rel="documentation"/>
<link href="https://pubs.acs.org/doi/book/10.1021/acsguide" rel="documentation"/>
<author>
<name>Julian Onions</name>
<email>julian.onions@gmail.com</email>
</author>
<contributor>
<name>Ivan Bushmarinov</name>
<email>ib@ineos.ac.ru</email>
</contributor>
<contributor>
<name>Sebastian Karcher</name>
</contributor>
<category citation-format="numeric"/>
<category field="chemistry"/>
<summary>The American Chemical Society style</summary>
<updated>2021-06-04T03:27:50+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<locale xml:lang="en">
<terms>
<term name="editortranslator" form="short">
<single>ed. and translator</single>
<multiple>eds. and translators</multiple>
</term>
<term name="translator" form="short">
<single>translator</single>
<multiple>translators</multiple>
</term>
<term name="collection-editor" form="short">
<single>series ed.</single>
<multiple>series eds.</multiple>
</term>
</terms>
</locale>
<macro name="editor">
<group delimiter="; ">
<names variable="editor translator" delimiter="; ">
<name sort-separator=", " initialize-with=". " name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
<label form="short" prefix=", " text-case="title"/>
</names>
<names variable="collection-editor">
<name sort-separator=", " initialize-with=". " name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
<label form="short" prefix=", " text-case="title"/>
</names>
</group>
</macro>
<macro name="author">
<names variable="author" suffix=".">
<name sort-separator=", " initialize-with=". " name-as-sort-order="all" delimiter="; " delimiter-precedes-last="always"/>
<label form="short" prefix=", " text-case="capitalize-first"/>
</names>
</macro>
<macro name="publisher">
<choose>
<if type="thesis" match="any">
<group delimiter=", ">
<text variable="publisher"/>
<text variable="publisher-place"/>
</group>
</if>
<else>
<group delimiter=": ">
<text variable="publisher"/>
<text variable="publisher-place"/>
</group>
</else>
</choose>
</macro>
<macro name="title">
<choose>
<if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<text variable="title" text-case="title" font-style="italic"/>
</if>
<else>
<text variable="title" text-case="title"/>
</else>
</choose>
</macro>
<macro name="volume">
<group delimiter=" ">
<text term="volume" form="short" text-case="capitalize-first"/>
<text variable="volume"/>
</group>
</macro>
<macro name="series">
<text variable="collection-title"/>
</macro>
<macro name="pages">
<label variable="page" form="short" suffix=" " strip-periods="true"/>
<text variable="page"/>
</macro>
<macro name="book-container">
<group delimiter=". ">
<text macro="title"/>
<choose>
<if type="entry-dictionary entry-encyclopedia" match="none">
<group delimiter=" ">
<text term="in" text-case="capitalize-first"/>
<text variable="container-title" font-style="italic"/>
</group>
</if>
<else>
<text variable="container-title" font-style="italic"/>
</else>
</choose>
</group>
</macro>
<macro name="issued">
<date variable="issued" delimiter=" ">
<date-part name="year"/>
</date>
</macro>
<macro name="full-issued">
<date variable="issued" delimiter=" ">
<date-part name="month" form="long" suffix=" "/>
<date-part name="day" suffix=", "/>
<date-part name="year"/>
</date>
</macro>
<macro name="edition">
<choose>
<if is-numeric="edition">
<group delimiter=" ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short"/>
</group>
</if>
<else>
<text variable="edition" suffix="."/>
</else>
</choose>
</macro>
<citation collapse="citation-number">
<sort>
<key variable="citation-number"/>
</sort>
<layout delimiter="," vertical-align="sup">
<text variable="citation-number"/>
</layout>
</citation>
<bibliography second-field-align="flush" entry-spacing="0">
<layout suffix=".">
<text variable="citation-number" prefix="(" suffix=") "/>
<text macro="author" suffix=" "/>
<choose>
<if type="article-journal review" match="any">
<group delimiter=" ">
<text macro="title" suffix="."/>
<text variable="container-title" font-style="italic" form="short"/>
<group delimiter=", ">
<text macro="issued" font-weight="bold"/>
<choose>
<if variable="volume">
<group delimiter=" ">
<text variable="volume" font-style="italic"/>
<text variable="issue" prefix="(" suffix=")"/>
</group>
</if>
<else>
<group delimiter=" ">
<text term="issue" form="short" text-case="capitalize-first"/>
<text variable="issue"/>
</group>
</else>
</choose>
<text variable="page"/>
</group>
</group>
</if>
<else-if type="article-magazine article-newspaper article" match="any">
<group delimiter=" ">
<text macro="title" suffix="."/>
<text variable="container-title" font-style="italic" suffix="."/>
<text macro="edition"/>
<text macro="publisher"/>
<group delimiter=", ">
<text macro="full-issued"/>
<text macro="pages"/>
</group>
</group>
</else-if>
<else-if type="thesis">
<group delimiter=", ">
<group delimiter=". ">
<text macro="title"/>
<text variable="genre"/>
</group>
<text macro="publisher"/>
<text macro="issued"/>
<text macro="volume"/>
<text macro="pages"/>
</group>
</else-if>
<else-if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<group delimiter="; ">
<group delimiter=", ">
<text macro="title"/>
<text macro="edition"/>
</group>
<text macro="editor" prefix=" "/>
<text macro="series"/>
<choose>
<if type="report">
<group delimiter=" ">
<text variable="genre"/>
<text variable="number"/>
</group>
</if>
</choose>
<group delimiter=", ">
<text macro="publisher"/>
<text macro="issued"/>
</group>
<group delimiter=", ">
<text macro="volume"/>
<text macro="pages"/>
</group>
</group>
</else-if>
<else-if type="patent">
<group delimiter=", ">
<group delimiter=". ">
<text macro="title"/>
<text variable="number"/>
</group>
<date variable="issued" form="text"/>
</group>
</else-if>
<else-if type="chapter paper-conference entry-dictionary entry-encyclopedia" match="any">
<group delimiter="; ">
<text macro="book-container"/>
<text macro="editor"/>
<text macro="series"/>
<group delimiter=", ">
<text macro="publisher"/>
<text macro="issued"/>
</group>
<group delimiter=", ">
<text macro="volume"/>
<text macro="pages"/>
</group>
</group>
</else-if>
<else-if type="webpage">
<group delimiter=" ">
<text variable="title"/>
<text variable="URL"/>
<date variable="accessed" prefix="(accessed " suffix=")" delimiter=" ">
<date-part name="year"/>
<date-part name="month" prefix="-" form="numeric-leading-zeros"/>
<date-part name="day" prefix="-" form="numeric-leading-zeros"/>
</date>
</group>
</else-if>
<else>
<group delimiter=", ">
<group delimiter=". ">
<text macro="title"/>
<text variable="container-title" font-style="italic"/>
</group>
<group delimiter=", ">
<text macro="issued"/>
<text variable="volume" font-style="italic"/>
<text variable="page"/>
</group>
</group>
</else>
</choose>
<text variable="DOI" prefix=". https://doi.org/"/>
</layout>
</bibliography>
</style>
@@ -0,0 +1,435 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" version="1.0" class="in-text" names-delimiter=". " name-as-sort-order="all" sort-separator=" " demote-non-dropping-particle="never" initialize-with=" " initialize-with-hyphen="false" page-range-format="expanded" default-locale="zh-CN">
<info>
<title>China National Standard GB/T 7714-2015 (numeric, 中文)</title>
<id>http://www.zotero.org/styles/china-national-standard-gb-t-7714-2015-numeric</id>
<link href="http://www.zotero.org/styles/china-national-standard-gb-t-7714-2015-numeric" rel="self"/>
<link href="http://std.samr.gov.cn/gb/search/gbDetailed?id=71F772D8055ED3A7E05397BE0A0AB82A" rel="documentation"/>
<author>
<name>牛耕田</name>
<email>buffalo_d@163.com</email>
</author>
<contributor>
<name>Zeping Lee</name>
<email>zepinglee@gmail.com</email>
</contributor>
<category citation-format="numeric"/>
<category field="generic-base"/>
<summary>The Chinese GB/T 7714-2015 numeric style</summary>
<updated>2022-02-23T10:44:01+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<locale xml:lang="zh-CN">
<date form="text">
<date-part name="year" suffix="年" range-delimiter="&#8212;"/>
<date-part name="month" form="numeric" suffix="月" range-delimiter="&#8212;"/>
<date-part name="day" suffix="日" range-delimiter="&#8212;"/>
</date>
<terms>
<term name="edition" form="short">版</term>
<term name="open-quote">“</term>
<term name="close-quote">”</term>
<term name="open-inner-quote"></term>
<term name="close-inner-quote"></term>
</terms>
</locale>
<locale>
<date form="numeric">
<date-part name="year" range-delimiter="/"/>
<date-part name="month" form="numeric-leading-zeros" prefix="-" range-delimiter="/"/>
<date-part name="day" form="numeric-leading-zeros" prefix="-" range-delimiter="/"/>
</date>
<terms>
<term name="page-range-delimiter">-</term>
</terms>
</locale>
<!-- 引用日期 -->
<macro name="accessed-date">
<date variable="accessed" form="numeric" prefix="[" suffix="]"/>
</macro>
<!-- 主要责任者 -->
<macro name="author">
<names variable="author">
<name>
<name-part name="family" text-case="uppercase"/>
<name-part name="given"/>
</name>
<substitute>
<names variable="composer"/>
<names variable="illustrator"/>
<names variable="director"/>
<choose>
<if variable="container-title" match="none">
<names variable="editor"/>
</if>
</choose>
</substitute>
</names>
</macro>
<!-- 书籍的卷号(“第 x 卷”或“第 x 册”) -->
<macro name="book-volume">
<choose>
<if type="article article-journal article-magazine article-newspaper periodical" match="none">
<choose>
<if is-numeric="volume">
<group delimiter=" ">
<label variable="volume" form="short" text-case="capitalize-first"/>
<text variable="volume"/>
</group>
</if>
<else>
<text variable="volume"/>
</else>
</choose>
</if>
</choose>
</macro>
<!-- 专著主要责任者 -->
<macro name="container-author">
<names variable="editor">
<name>
<name-part name="family" text-case="uppercase"/>
<name-part name="given"/>
</name>
<substitute>
<names variable="editorial-director"/>
<names variable="collection-editor"/>
<names variable="container-author"/>
</substitute>
</names>
</macro>
<!-- 专著题名 -->
<macro name="container-title">
<group delimiter=", ">
<group delimiter=": ">
<choose>
<if variable="container-title">
<text variable="container-title"/>
</if>
<else>
<text variable="event"/>
</else>
</choose>
<text macro="book-volume"/>
</group>
<choose>
<if variable="event-date">
<date variable="event-date" form="text"/>
<text variable="event-place"/>
</if>
</choose>
</group>
</macro>
<!-- 版本项 -->
<macro name="edition">
<choose>
<if is-numeric="edition">
<group delimiter=" ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short"/>
</group>
</if>
<else>
<text variable="edition"/>
</else>
</choose>
</macro>
<!-- 电子资源的更新或修改日期 -->
<macro name="issued-date">
<date variable="issued" form="numeric"/>
</macro>
<!-- 出版年 -->
<macro name="issued-year">
<choose>
<if is-uncertain-date="issued">
<date variable="issued" prefix="[" suffix="]">
<date-part name="year" range-delimiter="-"/>
</date>
</if>
<else>
<date variable="issued">
<date-part name="year" range-delimiter="-"/>
</date>
</else>
</choose>
</macro>
<!-- 专著的出版项 -->
<macro name="publishing">
<group delimiter=": ">
<group delimiter=", ">
<group delimiter=": ">
<text variable="publisher-place"/>
<text variable="publisher"/>
</group>
<!-- 非电子资源显示“出版年” -->
<choose>
<if variable="publisher page" type="book chapter paper-conference thesis" match="any">
<text macro="issued-year"/>
</if>
<else-if variable="URL DOI" match="none">
<text macro="issued-year"/>
</else-if>
</choose>
</group>
<text variable="page"/>
</group>
<choose>
<!-- 纯电子资源显示“更新或修改日期” -->
<if variable="publisher page" type="book chapter paper-conference thesis" match="none">
<choose>
<if variable="URL DOI" match="any">
<text macro="issued-date" prefix="(" suffix=")"/>
</if>
</choose>
</if>
</choose>
<text macro="accessed-date"/>
</macro>
<!-- 其他责任者 -->
<macro name="secondary-contributor">
<names variable="translator">
<name>
<name-part name="family" text-case="uppercase"/>
<name-part name="given"/>
</name>
<label form="short" prefix=", "/>
</names>
</macro>
<!-- 连续出版物中的析出文献的出处项(年、卷、期等信息) -->
<macro name="periodical-publishing">
<group>
<group delimiter=": ">
<group>
<group delimiter=", ">
<text macro="container-title" text-case="title"/>
<choose>
<if type="article-newspaper">
<text macro="issued-date"/>
</if>
<else>
<text macro="issued-year"/>
</else>
</choose>
<text variable="volume"/>
</group>
<text variable="issue" prefix="(" suffix=")"/>
</group>
<text variable="page"/>
</group>
<text macro="accessed-date"/>
</group>
</macro>
<!-- 题名 -->
<macro name="title">
<group delimiter=", ">
<group delimiter=": ">
<text variable="title"/>
<group delimiter="&#8195;">
<choose>
<if variable="container-title" type="paper-conference" match="none">
<text macro="book-volume"/>
</if>
</choose>
<choose>
<if type="bill legal_case legislation patent regulation report standard" match="any">
<text variable="number"/>
</if>
</choose>
</group>
</group>
<choose>
<if variable="container-title" type="paper-conference" match="none">
<choose>
<if variable="event-date">
<text variable="event-place"/>
<date variable="event-date" form="text"/>
</if>
</choose>
</if>
</choose>
</group>
<text macro="type-code" prefix="[" suffix="]"/>
</macro>
<!-- 文献类型标识 -->
<macro name="type-code">
<group delimiter="/">
<choose>
<if type="article">
<choose>
<if variable="archive">
<text value="A"/>
</if>
<else>
<text value="M"/>
</else>
</choose>
</if>
<else-if type="article-journal article-magazine periodical" match="any">
<text value="J"/>
</else-if>
<else-if type="article-newspaper">
<text value="N"/>
</else-if>
<else-if type="bill collection legal_case legislation regulation" match="any">
<text value="A"/>
</else-if>
<else-if type="book chapter" match="any">
<text value="M"/>
</else-if>
<else-if type="dataset">
<text value="DS"/>
</else-if>
<else-if type="map">
<text value="CM"/>
</else-if>
<else-if type="paper-conference">
<text value="C"/>
</else-if>
<else-if type="patent">
<text value="P"/>
</else-if>
<else-if type="post post-weblog webpage" match="any">
<text value="EB"/>
</else-if>
<else-if type="report">
<text value="R"/>
</else-if>
<else-if type="software">
<text value="CP"/>
</else-if>
<else-if type="standard">
<text value="S"/>
</else-if>
<else-if type="thesis">
<text value="D"/>
</else-if>
<else>
<text value="Z"/>
</else>
</choose>
<choose>
<if variable="URL DOI" match="any">
<text value="OL"/>
</if>
</choose>
</group>
</macro>
<!-- 获取和访问路径以及 DOI -->
<macro name="url-doi">
<group delimiter=". ">
<text variable="URL"/>
<text variable="DOI" prefix="DOI:"/>
</group>
</macro>
<!-- 连续出版物的年卷期 -->
<macro name="year-volume-issue">
<group>
<group delimiter=", ">
<text macro="issued-year"/>
<text variable="volume"/>
</group>
<text variable="issue" prefix="(" suffix=")"/>
</group>
</macro>
<!-- 专著和电子资源 -->
<macro name="monograph-layout">
<group delimiter=". " suffix=".">
<text macro="author"/>
<text macro="title"/>
<text macro="secondary-contributor"/>
<text macro="edition"/>
<text macro="publishing"/>
<text macro="url-doi"/>
</group>
</macro>
<!-- 专著中的析出文献 -->
<macro name="chapter-in-book-layout">
<group delimiter=". " suffix=".">
<text macro="author"/>
<group delimiter="//">
<group delimiter=". ">
<text macro="title"/>
<text macro="secondary-contributor"/>
</group>
<group delimiter=". ">
<text macro="container-author"/>
<text macro="container-title"/>
</group>
</group>
<text macro="edition"/>
<text macro="publishing"/>
<text macro="url-doi"/>
</group>
</macro>
<!-- 连续出版物 -->
<macro name="serial-layout">
<group delimiter=". " suffix=".">
<text macro="author"/>
<text macro="title"/>
<text macro="year-volume-issue"/>
<text macro="publishing"/>
<text variable="URL"/>
<text variable="DOI" prefix="DOI:"/>
</group>
</macro>
<!-- 连续出版物中的析出文献 -->
<macro name="article-in-periodical-layout">
<group delimiter=". " suffix=".">
<text macro="author"/>
<text macro="title"/>
<text macro="periodical-publishing"/>
<text macro="url-doi"/>
</group>
</macro>
<!-- 专利文献 -->
<macro name="patent-layout">
<group delimiter=". " suffix=".">
<text macro="author"/>
<text macro="title"/>
<group>
<text macro="issued-date"/>
<text macro="accessed-date"/>
</group>
<text macro="url-doi"/>
</group>
</macro>
<!-- 正文中引用的文献标注格式 -->
<macro name="citation-layout">
<group>
<text variable="citation-number"/>
</group>
</macro>
<!-- 参考文献表格式 -->
<macro name="entry-layout">
<choose>
<if type="article-journal article-magazine article-newspaper" match="any">
<text macro="article-in-periodical-layout"/>
</if>
<else-if type="periodical">
<text macro="serial-layout"/>
</else-if>
<else-if type="patent">
<text macro="patent-layout"/>
</else-if>
<else-if type="paper-conference" variable="container-title" match="any">
<text macro="chapter-in-book-layout"/>
</else-if>
<else>
<text macro="monograph-layout"/>
</else>
</choose>
</macro>
<citation collapse="citation-number" after-collapse-delimiter=",">
<layout vertical-align="sup" delimiter="," prefix="[" suffix="]">
<text macro="citation-layout"/>
</layout>
</citation>
<bibliography entry-spacing="0" et-al-min="4" et-al-use-first="3" second-field-align="flush">
<!-- 取消这部分注释可以使用 CSL-M 的功能支持双语 -->
<!-- <layout locale="en"><text variable="citation-number" prefix="[" suffix="]"/><text macro="entry-layout"/></layout> -->
<layout>
<text variable="citation-number" prefix="[" suffix="]"/>
<text macro="entry-layout"/>
</layout>
</bibliography>
</style>
+418
View File
@@ -0,0 +1,418 @@
// clab-tooltip.js - 完全隔离事件版本(修改后的显示位置逻辑)
(function() {
// 全局变量存储从 RN.html 提取的内容
let rnContentCache = {};
let isRnContentLoaded = false;
let activeTooltip = null;
let hideTimer = null;
let isMouseOverTooltip = false;
// 从 RN.html 提取内容(保持不变)
async function loadRnContent() {
try {
console.log('加载 RN.html...');
const response = await fetch('RN.html');
if (!response.ok) throw new Error(`HTTP error: ${response.status}`);
const htmlText = await response.text();
const parser = new DOMParser();
const rnDoc = parser.parseFromString(htmlText, 'text/html');
// 查找所有包含 data-options 的元素
const optionElements = rnDoc.querySelectorAll('[data-options]');
console.log(`找到 ${optionElements.length} 个 data-options 元素`);
optionElements.forEach(element => {
const optionValue = element.getAttribute('data-options');
if (!optionValue) return;
// 向前查找最近的 blockquote
let prevElement = element.previousElementSibling;
let blockquote = null;
// 先找前一个兄弟元素
while (prevElement) {
if (prevElement.tagName === 'BLOCKQUOTE') {
blockquote = prevElement;
break;
}
prevElement = prevElement.previousElementSibling;
}
// 如果没找到,向上查找
if (!blockquote) {
let parent = element.parentElement;
while (parent) {
let sibling = parent.previousElementSibling;
while (sibling) {
if (sibling.tagName === 'BLOCKQUOTE') {
blockquote = sibling;
break;
}
sibling = sibling.previousElementSibling;
}
if (blockquote) break;
parent = parent.parentElement;
}
}
if (blockquote) {
const lis = blockquote.querySelectorAll('li');
if (lis.length > 0) {
const liContents = Array.from(lis).map(li => li.textContent.trim());
if (!rnContentCache[optionValue]) {
rnContentCache[optionValue] = [];
}
// 存储所有引用
rnContentCache[optionValue].push({
contents: liContents
});
}
}
});
isRnContentLoaded = true;
console.log('内容加载完成');
Object.keys(rnContentCache).forEach(key => {
console.log(`"${key}": ${rnContentCache[key].length} Questions`);
});
} catch (error) {
console.error('加载失败:', error);
}
}
// 创建 tooltip(保持不变)
function createTooltip() {
const tooltip = document.createElement('div');
tooltip.className = 'clab-tooltip';
tooltip.id = 'clab-tooltip-element';
// 完全阻止所有事件冒泡
const stopAllEvents = (e) => {
e.stopPropagation();
e.stopImmediatePropagation();
e.preventDefault();
return false;
};
// 阻止所有可能的事件
const events = [
'mousedown', 'mouseup', 'click', 'dblclick',
'mousemove', 'mouseover', 'mouseout', 'mouseenter', 'mouseleave',
'wheel', 'scroll',
'touchstart', 'touchmove', 'touchend', 'touchcancel',
'pointerdown', 'pointermove', 'pointerup', 'pointercancel',
'dragstart', 'dragover', 'drop'
];
events.forEach(eventType => {
tooltip.addEventListener(eventType, stopAllEvents, true); // 捕获阶段
tooltip.addEventListener(eventType, stopAllEvents, false); // 冒泡阶段
});
// 允许 wheel 事件用于滚动,但阻止冒泡
tooltip.addEventListener('wheel', function(e) {
e.stopPropagation();
e.stopImmediatePropagation();
// 允许默认的滚动行为
}, { passive: false });
// 允许鼠标在 tooltip 内移动
tooltip.addEventListener('mousemove', function(e) {
e.stopPropagation();
}, { passive: true });
document.body.appendChild(tooltip);
return tooltip;
}
// 显示 tooltip - 已修改位置逻辑
function showTooltip(element, tooltip) {
const rect = element.getBoundingClientRect();
const optionValue = element.getAttribute('data-options');
// 清空内容
tooltip.innerHTML = '';
if (rnContentCache[optionValue] && rnContentCache[optionValue].length > 0) {
const entries = rnContentCache[optionValue];
// 标题显示选项
const title = document.createElement('div');
title.className = 'tooltip-title';
title.textContent = optionValue;
if (entries.length > 1) {
title.textContent += ` (${entries.length} questions)`;
}
tooltip.appendChild(title);
// 显示所有引用
entries.forEach((entry, entryIndex) => {
const content = entry.contents;
if (content.length === 1) {
// 单一条目
const entryDiv = document.createElement('div');
entryDiv.className = 'entry-single';
if (entries.length >= 1) {
entryDiv.innerHTML = `<span class="q-label">Q${entryIndex + 1}:</span> ${content[0]}`;
} else {
entryDiv.textContent = content[0];
}
tooltip.appendChild(entryDiv);
} else {
// 多个条目
const entryDiv = document.createElement('div');
entryDiv.className = 'entry-multiple';
if (entries.length > 1) {
const header = document.createElement('div');
header.className = 'q-header';
header.textContent = `Q${entryIndex + 1}:`;
entryDiv.appendChild(header);
}
const ol = document.createElement('ol');
ol.className = 'q-list';
content.forEach((item, itemIndex) => {
const li = document.createElement('li');
li.innerHTML = `<span class="q-sublabel">${entryIndex + 1}.${itemIndex + 1}</span> ${item}`;
ol.appendChild(li);
});
entryDiv.appendChild(ol);
tooltip.appendChild(entryDiv);
}
});
} else {
// 没有找到内容
const noContent = document.createElement('div');
noContent.className = 'tooltip-no-content';
noContent.textContent = '未找到相关内容';
tooltip.appendChild(noContent);
}
// 确保 tooltip 有合适的尺寸
tooltip.style.position = 'fixed';
tooltip.style.zIndex = '10000';
tooltip.style.maxWidth = '400px';
tooltip.style.maxHeight = '500px';
tooltip.style.overflowY = 'auto';
tooltip.style.boxSizing = 'border-box';
// 首先隐藏并获取尺寸
tooltip.style.visibility = 'hidden';
tooltip.classList.add('active');
document.body.appendChild(tooltip);
const tooltipWidth = Math.min(tooltip.scrollWidth, 400);
const tooltipHeight = Math.min(tooltip.scrollHeight, 500);
tooltip.style.width = tooltipWidth + 'px';
tooltip.style.height = 'auto';
const padding = 5;
const minDistanceFromEdge = 20;
let left, top;
let position = 'right'; // 首选右侧
// 检查右侧空间
if (rect.right + padding + tooltipWidth <= window.innerWidth - minDistanceFromEdge) {
// 右侧有足够空间
left = rect.right + padding;
top = rect.top;
position = 'right';
} else if (rect.left - padding - tooltipWidth >= minDistanceFromEdge) {
// 左侧有足够空间
left = rect.left - padding - tooltipWidth;
top = rect.top;
position = 'left';
} else {
// 两侧都没有足够空间,显示在下方
left = Math.max(
minDistanceFromEdge,
Math.min(
rect.left + (rect.width - tooltipWidth) / 2,
window.innerWidth - tooltipWidth - minDistanceFromEdge
)
);
top = rect.bottom + padding;
position = 'bottom';
}
// 垂直边界检查 - 确保不超出屏幕
if (top + tooltipHeight > window.innerHeight - minDistanceFromEdge) {
// 如果下方空间不足,尝试显示在上方
if (rect.top - padding - tooltipHeight >= minDistanceFromEdge) {
top = rect.top - padding - tooltipHeight;
} else {
// 上下都不够,显示在中间
top = Math.max(
minDistanceFromEdge,
Math.min(
top,
window.innerHeight - tooltipHeight - minDistanceFromEdge
)
);
}
}
// 水平边界检查 - 确保不超出屏幕
if (position === 'right' || position === 'left') {
left = Math.max(
minDistanceFromEdge,
Math.min(left, window.innerWidth - tooltipWidth - minDistanceFromEdge)
);
}
tooltip.style.left = left + 'px';
tooltip.style.top = top + 'px';
tooltip.style.visibility = 'visible';
// 添加一个小箭头指示方向
tooltip.setAttribute('data-position', position);
activeTooltip = tooltip;
isMouseOverTooltip = true;
// 添加 overlay 防止 body 交互
addOverlay();
}
// 添加半透明 overlay(保持不变)
function addOverlay() {
// 移除现有的 overlay
removeOverlay();
const overlay = document.createElement('div');
overlay.id = 'tooltip-overlay';
overlay.style.cssText = `
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 9999;
background: transparent;
pointer-events: none;
`;
document.body.appendChild(overlay);
// 将 overlay 的 pointer-events 设为 auto,但阻止所有事件
overlay.addEventListener('mousedown', stopEvent, true);
overlay.addEventListener('mouseup', stopEvent, true);
overlay.addEventListener('click', stopEvent, true);
overlay.addEventListener('mousemove', stopEvent, true);
overlay.addEventListener('wheel', stopEvent, true);
function stopEvent(e) {
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
return false;
}
}
// 移除 overlay(保持不变)
function removeOverlay() {
const overlay = document.getElementById('tooltip-overlay');
if (overlay) {
overlay.remove();
}
}
// 隐藏 tooltip(保持不变)
function hideTooltip() {
if (!isMouseOverTooltip && activeTooltip) {
activeTooltip.classList.remove('active');
activeTooltip = null;
removeOverlay();
}
}
// 强制隐藏 tooltip(保持不变)
function forceHideTooltip() {
if (activeTooltip) {
activeTooltip.classList.remove('active');
activeTooltip = null;
isMouseOverTooltip = false;
removeOverlay();
}
}
// 初始化(保持不变)
document.addEventListener('DOMContentLoaded', function() {
console.log('初始化 clab-tooltip');
const clabElements = document.querySelectorAll('.clab[data-options]');
console.log(`找到 ${clabElements.length} 个 .clab 元素`);
if (clabElements.length === 0) return;
// 加载内容
loadRnContent();
// 创建 tooltip
const tooltip = createTooltip();
// tooltip 鼠标进入/离开
tooltip.addEventListener('mouseenter', function() {
isMouseOverTooltip = true;
clearTimeout(hideTimer);
});
tooltip.addEventListener('mouseleave', function() {
isMouseOverTooltip = false;
hideTimer = setTimeout(() => {
forceHideTooltip();
}, 100);
});
// 为所有 .clab 元素添加事件监听
clabElements.forEach(clab => {
clab.addEventListener('mouseenter', function() {
clearTimeout(hideTimer);
setTimeout(() => {
if (isRnContentLoaded) {
showTooltip(this, tooltip);
}
}, 100);
});
clab.addEventListener('mouseleave', function() {
hideTimer = setTimeout(() => {
hideTooltip();
}, 100);
});
});
// ESC 键隐藏 tooltip
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape' && activeTooltip) {
forceHideTooltip();
}
});
// 点击其他地方隐藏 tooltip
document.addEventListener('click', function(e) {
if (activeTooltip && !activeTooltip.contains(e.target)) {
forceHideTooltip();
}
});
// 窗口大小改变时隐藏 tooltip
window.addEventListener('resize', forceHideTooltip);
// 滚动时隐藏 tooltip
window.addEventListener('scroll', forceHideTooltip);
});
})();
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="84.75pt" height="84.75pt" viewBox="0 0 84.75 84.75">
<defs>
<clipPath id="clip-0">
<path clip-rule="nonzero" d="M 13.617188 5.371094 L 71 5.371094 L 71 47.886719 L 13.617188 47.886719 Z M 13.617188 5.371094 "/>
</clipPath>
</defs>
<g clip-path="url(#clip-0)">
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 69.984375 17.222656 L 42.835938 5.476562 C 42.503906 5.335938 42.125 5.335938 41.792969 5.476562 L 14.644531 17.222656 C 13.777344 17.675781 13.4375 18.746094 13.886719 19.621094 C 14.054688 19.949219 14.320312 20.214844 14.644531 20.386719 L 41.792969 32.132812 C 42.121094 32.277344 42.496094 32.277344 42.824219 32.132812 L 63.9375 22.984375 L 63.9375 32.335938 C 62.050781 33.488281 61.449219 35.960938 62.59375 37.863281 C 62.925781 38.414062 63.386719 38.878906 63.9375 39.214844 L 63.9375 42.480469 L 66.714844 42.480469 L 66.714844 39.214844 C 68.601562 38.0625 69.203125 35.589844 68.058594 33.691406 C 67.722656 33.136719 67.261719 32.671875 66.714844 32.335938 L 66.714844 21.792969 L 69.984375 20.371094 C 70.847656 19.914062 71.179688 18.839844 70.726562 17.96875 C 70.558594 17.648438 70.300781 17.390625 69.984375 17.222656 Z M 42.316406 34.488281 C 41.898438 34.488281 41.488281 34.402344 41.105469 34.234375 L 24.179688 26.90625 L 24.179688 37.023438 C 24.179688 45.3125 36.523438 47.796875 40.378906 47.796875 L 44.199219 47.796875 C 47.085938 47.796875 60.402344 45.3125 60.402344 37.023438 L 60.402344 26.90625 L 43.472656 34.246094 C 43.070312 34.417969 42.636719 34.5 42.199219 34.488281 Z M 42.316406 34.488281 "/>
</g>
<path fill-rule="evenodd" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 31.371094 50.25 L 46.289062 50.25 C 48.054688 50.25 49.804688 50.445312 51.511719 50.828125 L 53.25 51.425781 L 44.996094 65.046875 C 42.972656 68.386719 42.972656 72.570312 44.996094 75.910156 L 45.066406 76.003906 L 45.632812 78.78125 C 40.878906 78.78125 36.125 81 31.371094 81 C 18.601562 81 8.25 78.78125 8.25 73.789062 L 8.25 72.359375 C 8.25 60.148438 18.601562 50.25 31.371094 50.25 Z M 31.371094 50.25 "/>
<path fill-rule="evenodd" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 62.039062 50.550781 L 70.492188 64.464844 C 73.484375 69.390625 71.882812 75.789062 66.917969 78.753906 C 61.949219 81.722656 55.496094 80.136719 52.507812 75.210938 C 50.496094 71.902344 50.496094 67.769531 52.507812 64.464844 L 60.957031 50.554688 C 61.136719 50.257812 61.527344 50.160156 61.824219 50.339844 C 61.914062 50.394531 61.988281 50.464844 62.039062 50.554688 Z M 62.039062 50.550781 "/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

+384
View File
@@ -0,0 +1,384 @@
.udot {
text-decoration-line: underline;
text-decoration-color: rgb(50, 50, 50);
text-decoration-style: dashed;
text-decoration-thickness: 1px;
}
.good {
background-color: forestgreen;
color: lightyellow;
}
.bad {
background-color: orangered;
color: lightyellow;
}
.del {
text-decoration-line: line-through;
text-decoration-color: rgb(222 13 13);
text-decoration-style: initial;
text-decoration-thickness: 1.5px;
}
.todo {
background-color: darkorange;
color: lightyellow;
}
.com {
background-color: #0025ff;
font-weight: bold;
color: lightyellow;
}
.add {
text-decoration-line: underline;
text-decoration-color: rgb(222 13 13);
background-color: violet;
text-decoration-style: initial;
text-decoration-thickness: 2px;
}
del {
text-decoration-line: line-through;
text-decoration-color: rgb(222 13 13);
text-decoration-style: initial;
text-decoration-thickness: 1.0px;
}
ins {
text-decoration-color: rgb(222 93 93);
background-color: violet;
text-decoration-style: initial;
text-decoration-thickness: 2px;
}
/* clab-style.css */
.clab {
display: inline !important;
position: relative !important;
cursor: pointer !important;
padding: 2px 4px !important;
margin: 0 1px !important;
border-radius: 3px !important;
font: inherit !important;
color: #000000 !important;
text-decoration: none !important;
vertical-align: baseline !important;
line-height: inherit !important;
z-index: 1 !important;
}
/* 随机背景色(使用预定义颜色) */
.clab:nth-child(10n+1) { background-color: #E3F2FD !important; }
.clab:nth-child(10n+2) { background-color: #F3E5F5 !important; }
.clab:nth-child(10n+3) { background-color: #E8F5E9 !important; }
.clab:nth-child(10n+4) { background-color: #FFF3E0 !important; }
.clab:nth-child(10n+5) { background-color: #FCE4EC !important; }
.clab:nth-child(10n+6) { background-color: #E0F7FA !important; }
.clab:nth-child(10n+7) { background-color: #F1F8E9 !important; }
.clab:nth-child(10n+8) { background-color: #FFF8E1 !important; }
.clab:nth-child(10n+9) { background-color: #EDE7F6 !important; }
.clab:nth-child(10n+10) { background-color: #E8EAF6 !important; }
/* 基础hover效果 */
span.clab:hover {
outline: 2px solid rgba(0,0,0,0.2) !important;
outline-offset: 2px !important;
z-index: 1000 !important;
}
/* clab-tooltip 下方显示样式 */
.clab-tooltip {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
color: white;
padding: 5px;
border: 1px solid #444;
/* -webkit-user-select: none; */
position: fixed;
background: rgba(0, 0, 0, 0.95);
border-radius: 8px;
z-index: 10000;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3),
0 0 0 1px rgba(255, 255, 255, 0.1);
font-size: 14px;
line-height: 1.1;
max-width: 500px;
max-height: 800px;
overflow-y: auto;
opacity: 0;
visibility: hidden;
transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
overscroll-behavior: contain;
pointer-events: auto !important;
}
/* Tooltip 箭头 */
.tooltip-arrow {
position: absolute;
width: 0;
height: 0;
border: 6px solid transparent;
border-bottom-color: #2a2a2a;
border-top: none;
}
/* tooltip 在上方的箭头(向下) */
.clab-tooltip.above .tooltip-arrow {
border-top-color: #2a2a2a;
border-bottom: none;
}
/* 标题 */
.tooltip-title {
font-weight: 600;
color: #FF9800;
margin-bottom: 6px;
padding-bottom: 4px;
border-bottom: 1px solid #444;
font-size: 14px;
font-family: monospace;
line-height: 0.8;
pointer-events: none;
}
/* 单一条目 */
.entry-single {
padding: 4px 4px;
margin-bottom: 6px;
background: rgba(255, 255, 255, 0.05);
border-radius: 6px;
border-left: 3px solid #ffffff;
line-height: 1.2;
cursor: default;
}
/* Q标签样式 */
.q-label {
display: inline-block;
color: #FF9800;
font-weight: 600;
margin-right: 8px;
min-width: 35px;
}
/* 多个条目的引用 */
.entry-multiple {
padding: 4px 4px;
margin-bottom: 6px;
background: rgba(255, 255, 255, 0.05);
border-radius: 6px;
border-left: 3px solid #ffffff;
line-height: 1.2;
cursor: default;
}
/* 多引用标题 */
.q-header {
color: #FF9800;
font-weight: 600;
margin-bottom: 8px;
font-size: 13px;
pointer-events: none;
}
/* 列表 */
.q-list {
margin: 0;
padding-left: 0;
list-style: none;
}
.q-list li {
margin-bottom: 10px;
padding-left: 0;
line-height: 1.2;
position: relative;
cursor: default;
padding: 4px 0;
}
/* 子标签样式 */
.q-sublabel {
display: inline-block;
color: #4CAF50;
font-weight: 600;
margin-right: 2px;
min-width: 25px;
}
/* 条目间空行 */
/* .entry-spacer { */
/* height: 12px; */
/* pointer-events: none; */
/* } */
/* 无内容 */
.tooltip-no-content {
color: #ff6b6b;
font-style: italic;
padding: 20px;
text-align: center;
background: rgba(255, 107, 107, 0.05);
border-radius: 6px;
cursor: default;
}
/* 滚动条 */
.clab-tooltip::-webkit-scrollbar {
width: 8px;
height: 8px;
}
.clab-tooltip::-webkit-scrollbar-track {
background: #1a1a1a;
border-radius: 4px;
}
.clab-tooltip::-webkit-scrollbar-thumb {
background: #4CAF50;
border-radius: 4px;
}
.clab-tooltip::-webkit-scrollbar-thumb:hover {
background: #45a049;
}
/* 允许内容文本选择 */
.entry-single,
.entry-multiple,
.q-list li {
user-select: text;
-webkit-user-select: text;
}
/* 鼠标在 tooltip 上时的样式 */
.clab-tooltip:hover {
cursor: default;
}
.clab-tooltip.active {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
.clab-tooltip ul {
margin: 0;
padding-left: 20px;
}
.clab-tooltip li {
margin-bottom: 8px;
position: relative;
}
.clab-tooltip .source {
margin-top: 10px;
padding-top: 10px;
border-top: 1px solid rgba(255,255,255,0.1);
font-size: 11px;
color: #aaa;
font-style: italic;
}
.clab-tooltip .entry {
margin-bottom: 15px;
padding-bottom: 10px;
border-bottom: 1px solid rgba(255,255,255,0.1);
}
.clab-tooltip .entry:last-child {
border-bottom: none;
}
.rem {
background-color: darkorange;
color: lightyellow;
text-decoration-thickness: 2px;
}
#criticnav {
position: fixed;
z-index: 1100;
top: 0;
right: 0;
width: 120px;
border-bottom: solid 1px #ffffff;
margin: 0;
padding: 10;
background-color: rgb(143 38 38 / 95%);
color: #ffffff;
font-size: 12px;
font-family: "Helvetica Neue", helvetica, arial, sans-serif !important
}
#criticnav ul {
list-style-type: none;
width: 90%;
margin: 0 auto;
padding: 0
}
#criticnav ul li {
display: block;
width: 100px;
min-width: 80px;
text-align: center;
padding: 5px 0 3px !important;
margin: 5px 2px !important;
line-height: 1em;
float: center;
text-transform: uppercase;
cursor: pointer;
border-radius: 20px;
border: 3px solid rgba(255,255,255,0);
color: #fff !important
}
p {
text-align: left; /* 小屏幕左对齐 */
}
@media (min-width: 768px) {
p {
text-align: justify;
hyphens: auto; /* 自动断字 */
-webkit-hyphens: auto; /* Safari 支持 */
/* 可选:控制断字行为 */
hyphenate-limit-chars: 6 3 2; /* 最小单词长度 前/后最小字符数 */
}
}
@media (min-width: 992px) {
body .page-columns {
display: grid;
gap: 0;
grid-template-columns: [screen-start] 0.5em [screen-start-inset] 0fr [page-start page-start-inset] 5px [body-start-outset] 5px [body-start] 0.5em [body-content-start] minmax(350px, calc(855px - 0em)) [body-content-end] 0.5em [body-end] 5px [body-end-outset] minmax(75px, 550px) [page-end-inset] 1px [page-end] 1fr [screen-end-inset] 0.5em [screen-end];
}
}
@media (min-width: 1280px) {
body .page-columns {
display: grid;
gap: 0;
grid-template-columns: [screen-start] 3.5em [screen-start-inset] 2fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 3.5em [body-content-start] minmax(500px, calc(850px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 400px) [page-end-inset] 35px [page-end] 2fr [screen-end-inset] 1.5em [screen-end];
}
}
+415
View File
@@ -0,0 +1,415 @@
/*-- scss:defaults --*/
$theme: "drwater" !default;
//
// Color system
//
$white: #ffffff !default;
$gray-100: #f8f9fa !default;
$gray-200: #e9ecef !default;
$gray-300: #dee2e6 !default;
$gray-400: #ced4da !default;
$gray-500: #adb5bd !default;
$gray-600: #868e96 !default;
$gray-700: #495057 !default;
$gray-800: #373a3c !default;
$gray-900: #212529 !default;
$black: #000000 !default;
$blue: #2780e3 !default;
$indigo: #6610f2 !default;
$purple: #170c3a !default;
$pink: #a52c60 !default;
$red: #cf4446 !default;
$orange: #ee6a24 !default;
$light-orange: #fb9e07 !default;
$yellow: #f6d645 !default;
$green: #118230 !default;
$teal: #20c997 !default;
$cyan: #3093cf !default;
$primary: $pink !default;
$secondary: $gray-700 !default;
$success: $green !default;
$info: $cyan !default;
$warning: $orange !default;
$danger: $red !default;
$light: $gray-400 !default;
$dark: $black !default;
// Fonts
$font-family-sans-serif: "Libre Franklin" !default;
$headings-font-family: "Jost" !default;
$headings-font-weight: 600 !default;
$navbar-font-family: "Jost" !default;
$toc-font-family: "Jost" !default;
$footer-font-family: "Jost" !default;
// Body
$body-color: $gray-900 !default;
// Links
$link-color: $orange !default;
$link-decoration: none !default;
$link-hover-color: $red !default;
$link-hover-decoration: underline !default;
// Inline code
$code-bg: $gray-200 !default;
$code-color: $gray-900 !default;
// Code copy
$btn-code-copy-color-active: $orange !default;
// TOC
$toc-color: $orange;
$toc-font-size: 1em;
// Navbar
$navbar-bg: $purple !default;
$navbar-fg: $white !default;
$navbar-hl: $light-orange !default;
// Footer
$footer-bg: $gray-900 !default;
$footer-fg: $gray-300 !default;
/*-- scss:rules --*/
$web-font-path: "https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&family=Libre+Franklin:ital,wght@0,100..900;1,100..900&display=swap" !default;
@if $web-font-path {
@import url($web-font-path);
}
body {
-webkit-font-smoothing: antialiased;
}
/* Logo 悬停效果 */
.navbar-brand img {
transition: all 0.3s ease;
filter: brightness(0) invert(1);
&:hover {
filter: brightness(0) invert(0.55) sepia(1) saturate(2000%) hue-rotate(-8deg) brightness(1.05) contrast(1.2);
transform: scale(1.05);
}
}
// =============================================
// 桌面端样式 - 使用悬停展开下拉菜单
// =============================================
@media (min-width: 992px) {
/* 导航栏主菜单项样式 */
.navbar-nav .nav-item {
position: relative;
margin: 0 0.2rem;
.nav-link {
position: relative;
color: $navbar-fg !important;
font-weight: 500;
padding: 0.75rem 1rem !important;
border-radius: 8px;
transition: all 0.3s ease;
z-index: 1;
/* 玻璃效果背景 */
&::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba($white, 0.1);
backdrop-filter: blur(10px);
border-radius: 8px;
opacity: 0;
transition: all 0.3s ease;
z-index: -1;
border: 1px solid rgba($white, 0.2);
}
&:hover {
color: $light-orange !important;
transform: translateY(-2px);
&::before {
opacity: 1;
background: rgba($white, 0.15);
backdrop-filter: blur(15px);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}
}
/* 激活状态 */
&.active {
color: $light-orange !important;
font-weight: 600;
&::before {
opacity: 1;
background: rgba($light-orange, 0.2);
backdrop-filter: blur(15px);
border: 1px solid rgba($light-orange, 0.3);
}
}
}
}
/* 有下拉菜单的主菜单项特殊样式 */
.navbar-nav .nav-item.dropdown {
.nav-link {
padding-right: 2rem !important;
&::after {
position: absolute;
right: 1rem;
top: 50%;
transform: translateY(-50%);
transition: all 0.3s ease;
}
}
&:hover .nav-link::before {
opacity: 1;
background: rgba($white, 0.2);
backdrop-filter: blur(20px);
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
&:hover .nav-link::after {
transform: translateY(-50%) rotate(-180deg);
border-top-color: $light-orange;
}
}
/* 桌面端下拉菜单悬停效果 */
.navbar-nav .nav-item.dropdown:hover .dropdown-menu {
display: block !important;
opacity: 1 !important;
visibility: visible !important;
transform: translateY(0) !important;
}
.dropdown-menu {
display: block;
opacity: 0;
visibility: hidden;
transform: translateY(-10px);
transition: all 0.3s ease;
background: rgba($purple, 0.98) !important;
backdrop-filter: blur(20px);
border: 1px solid rgba($white, 0.1);
border-top: none;
border-radius: 0 0 8px 8px;
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
margin-top: -1px;
padding: 0.5rem 0;
&.show {
display: block;
opacity: 1;
visibility: visible;
transform: translateY(0);
}
}
.dropdown-item {
color: $white !important;
font-family: $navbar-font-family;
padding: 0.75rem 1.5rem;
transition: all 0.2s ease;
position: relative;
/* 下拉菜单项的玻璃效果 */
&::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba($white, 0.05);
border-radius: 4px;
opacity: 0;
transition: all 0.2s ease;
z-index: -1;
}
&:hover, &:focus {
color: $light-orange !important;
transform: translateX(5px);
background: transparent !important;
&::before {
opacity: 1;
background: rgba($white, 0.1);
}
}
}
/* 确保下拉菜单与主菜单视觉上连接 */
.navbar-nav .nav-item.dropdown:hover .nav-link {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
}
// =============================================
// 移动端样式 - 使用点击展开下拉菜单
// =============================================
@media (max-width: 991.98px) {
/* 完全重置移动端导航样式,使用 Bootstrap 默认行为 */
.navbar-collapse {
background: rgba($purple, 0.98);
backdrop-filter: blur(10px);
border-top: 1px solid rgba($white, 0.1);
margin-top: 0.5rem;
padding: 0.5rem 0;
.navbar-nav {
.nav-item {
margin: 0;
.nav-link {
color: $navbar-fg !important;
padding: 1rem 1.5rem !important;
border-radius: 0;
transition: all 0.2s ease;
display: flex;
justify-content: space-between;
align-items: center;
&:hover {
color: $light-orange !important;
background: rgba($white, 0.1);
}
&.active {
color: $light-orange !important;
background: rgba($light-orange, 0.1);
font-weight: 600;
}
}
/* 下拉菜单项样式 */
&.dropdown {
.dropdown-toggle::after {
transition: transform 0.3s ease;
}
&.show {
.dropdown-toggle {
color: $light-orange !important;
background: rgba($white, 0.15);
&::after {
transform: rotate(-180deg);
}
}
}
.dropdown-menu {
background: rgba(darken($purple, 5%), 0.95) !important;
border: none;
border-radius: 0;
padding: 0;
margin: 0;
position: static;
float: none;
display: none;
&.show {
display: block !important;
}
}
}
}
}
}
/* 移动端下拉菜单项 */
.dropdown-item {
color: $navbar-fg !important;
padding: 0.875rem 1.5rem 0.875rem 2.5rem !important;
border-radius: 0;
transition: all 0.2s ease;
&:hover, &:focus {
color: $light-orange !important;
background: rgba($white, 0.1) !important;
transform: none;
}
&.active {
color: $light-orange !important;
background: rgba($light-orange, 0.1) !important;
font-weight: 600;
}
}
/* 移动端导航栏折叠按钮 */
.navbar-toggler {
border: 1px solid rgba($white, 0.2);
padding: 0.5rem 0.75rem;
&:focus {
box-shadow: 0 0 0 0.2rem rgba($light-orange, 0.25);
}
.navbar-toggler-icon {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.8%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
}
/* 禁用桌面端的悬停效果 */
.navbar-nav .nav-item .nav-link::before {
display: none;
}
.navbar-nav .nav-item.dropdown:hover .dropdown-menu {
display: none !important;
}
}
// =============================================
// 通用样式
// =============================================
/* 导航栏整体样式 */
.navbar {
backdrop-filter: blur(10px);
background: rgba($purple, 0.95) !important;
border-bottom: 1px solid rgba($white, 0.1);
}
/* 为有下拉菜单的导航项添加视觉指示 */
.navbar-nav .nav-item.dropdown > .nav-link::after {
display: inline-block;
margin-left: 0.255em;
vertical-align: 0.255em;
content: "";
border-top: 0.3em solid;
border-right: 0.3em solid transparent;
border-bottom: 0;
border-left: 0.3em solid transparent;
}
/* 确保 Bootstrap 的 JavaScript 交互正常工作 */
.navbar-nav .dropdown-toggle::after {
display: inline-block !important;
}
/* 修复移动端点击事件 */
.navbar-nav .nav-item.dropdown .nav-link {
cursor: pointer;
}
File diff suppressed because it is too large Load Diff
+239
View File
@@ -0,0 +1,239 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="never" default-locale="en-US">
<info>
<title>Elsevier - Harvard (with titles)</title>
<id>http://www.zotero.org/styles/elsevier-harvard</id>
<link href="http://www.zotero.org/styles/elsevier-harvard" rel="self"/>
<link href="http://www.zotero.org/styles/ecology-letters" rel="template"/>
<link href="http://www.elsevier.com/journals/biological-conservation/0006-3207/guide-for-authors#68000" rel="documentation"/>
<author>
<name>David Kaplan</name>
<email>david.kaplan@ird.fr</email>
</author>
<contributor>
<name>Simon Kornblith</name>
<email>simon@simonster.com</email>
</contributor>
<contributor>
<name>Bruce D'Arcus</name>
</contributor>
<contributor>
<name>Curtis M. Humphrey</name>
</contributor>
<contributor>
<name>Richard Karnesky</name>
<email>karnesky+zotero@gmail.com</email>
<uri>http://arc.nucapt.northwestern.edu/Richard_Karnesky</uri>
</contributor>
<contributor>
<name>Sebastian Karcher</name>
</contributor>
<category citation-format="author-date"/>
<category field="biology"/>
<category field="generic-base"/>
<updated>2014-03-04T00:09:00+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<macro name="container">
<choose>
<if type="chapter paper-conference" match="any">
<text term="in" prefix=", " suffix=": "/>
<names variable="editor translator" delimiter=", " suffix=", ">
<name name-as-sort-order="all" sort-separator=", " initialize-with="." delimiter=", " delimiter-precedes-last="always"/>
<label form="short" text-case="capitalize-first" prefix=" (" suffix=")"/>
</names>
<group delimiter=", ">
<text variable="container-title" text-case="title"/>
<text variable="collection-title" text-case="title"/>
</group>
</if>
<else-if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<group prefix=", " delimiter=", ">
<text variable="container-title"/>
<text variable="collection-title"/>
</group>
</else-if>
<else>
<group prefix=". " delimiter=", ">
<text variable="container-title" form="short"/>
<text variable="collection-title"/>
</group>
</else>
</choose>
</macro>
<macro name="author">
<names variable="author">
<name name-as-sort-order="all" sort-separator=", " initialize-with="." delimiter=", " delimiter-precedes-last="always"/>
<label form="short" prefix=" (" suffix=")" text-case="capitalize-first"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<text macro="title"/>
</substitute>
</names>
</macro>
<macro name="author-short">
<names variable="author">
<name form="short" and="text" delimiter=", " initialize-with=". "/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<choose>
<if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<text variable="title" form="short" font-style="italic"/>
</if>
<else>
<text variable="title" form="short" quotes="true"/>
</else>
</choose>
</substitute>
</names>
</macro>
<macro name="access">
<choose>
<if variable="DOI">
<text variable="DOI" prefix="https://doi.org/"/>
</if>
<else-if type="webpage post-weblog" match="any">
<group delimiter=" ">
<text value="URL"/>
<text variable="URL"/>
<group prefix="(" suffix=").">
<text term="accessed" suffix=" "/>
<date variable="accessed">
<date-part name="month" form="numeric" suffix="."/>
<date-part name="day" suffix="."/>
<date-part name="year" form="short"/>
</date>
</group>
</group>
</else-if>
</choose>
</macro>
<macro name="title">
<choose>
<if type="report thesis" match="any">
<text variable="title"/>
<group prefix=" (" suffix=")" delimiter=" ">
<text variable="genre"/>
<text variable="number" prefix="No. "/>
</group>
</if>
<else-if type="bill book graphic legal_case legislation motion_picture report song speech" match="any">
<text variable="title"/>
<text macro="edition" prefix=", "/>
</else-if>
<else-if type="webpage">
<text variable="title"/>
<text value="WWW Document" prefix=" [" suffix="]"/>
</else-if>
<else>
<text variable="title"/>
</else>
</choose>
</macro>
<macro name="publisher">
<group delimiter=", ">
<text variable="publisher"/>
<text variable="publisher-place"/>
</group>
</macro>
<macro name="event">
<choose>
<if variable="event">
<text term="presented at" text-case="capitalize-first" suffix=" "/>
<text variable="event"/>
</if>
</choose>
</macro>
<macro name="issued">
<choose>
<if variable="issued">
<date variable="issued">
<date-part name="year"/>
</date>
</if>
<else>
<text term="no date" form="short"/>
</else>
</choose>
</macro>
<macro name="edition">
<group delimiter=" ">
<choose>
<if is-numeric="edition">
<number variable="edition" form="ordinal"/>
</if>
<else>
<text variable="edition" suffix="."/>
</else>
</choose>
<text value="ed"/>
</group>
</macro>
<macro name="locators">
<choose>
<if type="article-journal article-magazine article-newspaper" match="any">
<group prefix=" " delimiter=", ">
<group>
<text variable="volume"/>
</group>
<text variable="page"/>
</group>
</if>
<else-if type="bill book graphic legal_case legislation motion_picture report song thesis" match="any">
<group delimiter=", " prefix=". ">
<text macro="event"/>
<text macro="publisher"/>
</group>
</else-if>
<else-if type="chapter paper-conference" match="any">
<group delimiter=", " prefix=". ">
<text macro="event"/>
<text macro="publisher"/>
<group>
<label variable="page" form="short" suffix=" "/>
<text variable="page"/>
</group>
</group>
</else-if>
<else-if type="patent">
<text variable="number" prefix=". "/>
</else-if>
</choose>
</macro>
<citation et-al-min="3" et-al-use-first="1" disambiguate-add-givenname="true" disambiguate-add-year-suffix="true" collapse="year" cite-group-delimiter=", ">
<sort>
<key macro="author"/>
<key macro="issued" sort="descending"/>
</sort>
<layout prefix="(" suffix=")" delimiter="; ">
<group delimiter=", ">
<text macro="author-short"/>
<text macro="issued"/>
<group delimiter=" ">
<label variable="locator" form="short"/>
<text variable="locator"/>
</group>
</group>
</layout>
</citation>
<bibliography hanging-indent="true" entry-spacing="0" line-spacing="1">
<sort>
<key macro="author"/>
<key macro="issued" sort="descending"/>
</sort>
<layout>
<group suffix=".">
<text macro="author" suffix=","/>
<text macro="issued" prefix=" "/>
<group prefix=". ">
<text macro="title"/>
<text macro="container"/>
<text macro="locators"/>
</group>
</group>
<text macro="access" prefix=". "/>
</layout>
</bibliography>
</style>
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" version="1.0" default-locale="en-US">
<info>
<title>Global Change Biology</title>
<title-short>GCB</title-short>
<id>http://www.zotero.org/styles/global-change-biology</id>
<link href="http://www.zotero.org/styles/global-change-biology" rel="self"/>
<link href="http://www.zotero.org/styles/apa" rel="independent-parent"/>
<link href="https://onlinelibrary.wiley.com/page/journal/13652486/homepage/forauthors.html" rel="documentation"/>
<category citation-format="author-date"/>
<issn>1354-1013</issn>
<eissn>1365-2486</eissn>
<updated>2018-06-03T03:31:35+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
</style>
@@ -0,0 +1,165 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" default-locale="en-US" version="1.0" demote-non-dropping-particle="sort-only">
<info>
<title>Journal of Hazardous Materials</title>
<id>http://www.zotero.org/styles/journal-of-hazardous-materials</id>
<link href="http://www.zotero.org/styles/journal-of-hazardous-materials" rel="self"/>
<link href="http://www.zotero.org/styles/springer-basic-brackets" rel="template"/>
<link href="https://www.sciencedirect.com/journal/journal-of-hazardous-materials/publish/guide-for-authors" rel="documentation"/>
<author>
<name>Patrick O'Brien</name>
</author>
<category citation-format="numeric"/>
<category field="generic-base"/>
<issn>0304-3894</issn>
<eissn>1873-3336</eissn>
<updated>2025-07-25T12:53:42+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<locale>
<terms>
<term name="et-al">et al</term>
</terms>
</locale>
<macro name="author">
<names variable="author">
<name sort-separator=" " initialize-with="" name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<text variable="title"/>
</substitute>
</names>
</macro>
<macro name="edition">
<choose>
<if is-numeric="edition">
<group delimiter=" ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short" strip-periods="true"/>
</group>
</if>
<else>
<text variable="edition"/>
</else>
</choose>
</macro>
<macro name="title">
<choose>
<if type="book">
<group delimiter=", ">
<text variable="title"/>
<text macro="edition"/>
</group>
</if>
<else>
<text variable="title"/>
</else>
</choose>
</macro>
<macro name="year-parenth">
<date variable="issued">
<date-part name="year"/>
</date>
</macro>
<citation collapse="citation-number">
<sort>
<key variable="citation-number"/>
</sort>
<layout prefix="[" suffix="]" delimiter=", ">
<text variable="citation-number"/>
</layout>
</citation>
<bibliography second-field-align="flush">
<layout>
<text variable="citation-number" prefix="[" suffix="]"/>
<group delimiter=". ">
<group delimiter=", ">
<text macro="author"/>
<text macro="year-parenth"/>
</group>
<text macro="title"/>
</group>
<choose>
<if type="chapter paper-conference" match="any">
<group delimiter=" " prefix=". ">
<text term="in" text-case="capitalize-first" suffix=":"/>
<names variable="editor">
<name sort-separator=" " initialize-with="" name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
<label form="short" strip-periods="true" prefix=" (" suffix=")"/>
</names>
<group delimiter=", ">
<text variable="container-title"/>
<text macro="edition"/>
</group>
</group>
<group prefix=". " delimiter=", ">
<text variable="publisher"/>
<text variable="publisher-place"/>
<group delimiter=" ">
<label variable="page" form="short" strip-periods="true"/>
<text variable="page"/>
</group>
</group>
</if>
<else-if type="article-journal">
<choose>
<if variable="page volume" match="any">
<group prefix=". " delimiter=". ">
<group delimiter=" ">
<text variable="container-title" form="short" strip-periods="true"/>
<group delimiter=", ">
<text variable="volume"/>
<text variable="page"/>
</group>
</group>
<text prefix="https://doi.org/" variable="DOI"/>
</group>
</if>
<else>
<group prefix=". " delimiter=". ">
<text variable="container-title" form="short" strip-periods="true"/>
<text prefix="https://doi.org/" variable="DOI"/>
</group>
</else>
</choose>
</else-if>
<else-if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<group prefix=". " delimiter=", ">
<text variable="publisher"/>
<text variable="publisher-place"/>
</group>
</else-if>
<else-if type="webpage post-weblog post" match="any">
<group prefix=". " delimiter=". ">
<text variable="container-title" form="short"/>
<text variable="URL"/>
<group delimiter=" ">
<text term="accessed" text-case="capitalize-first"/>
<date variable="accessed">
<date-part name="day" suffix=" "/>
<date-part name="month" form="short" suffix=" " strip-periods="true"/>
<date-part name="year"/>
</date>
</group>
</group>
</else-if>
<else-if type="thesis">
<group prefix=". " delimiter=", ">
<text variable="genre" text-case="capitalize-first"/>
<text variable="publisher"/>
</group>
</else-if>
<else>
<group prefix=". " delimiter=" ">
<text variable="container-title" form="short"/>
<group delimiter=":">
<text variable="volume"/>
<text variable="page"/>
</group>
</group>
</else>
</choose>
</layout>
</bibliography>
</style>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" version="1.0" default-locale="en-GB">
<!-- Generated with https://github.com/citation-style-language/utilities/tree/master/generate_dependent_styles/data/npg -->
<info>
<title>Nature Biotechnology</title>
<id>http://www.zotero.org/styles/nature-biotechnology</id>
<link href="http://www.zotero.org/styles/nature-biotechnology" rel="self"/>
<link href="http://www.zotero.org/styles/nature" rel="independent-parent"/>
<link href="http://www.nature.com/nbt/pdf/gta.pdf" rel="documentation"/>
<category citation-format="numeric"/>
<category field="biology"/>
<issn>1087-0156</issn>
<eissn>1546-1696</eissn>
<updated>2014-06-17T02:29:16+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
</style>
+154
View File
@@ -0,0 +1,154 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" default-locale="en-GB">
<info>
<title>Nature</title>
<id>http://www.zotero.org/styles/nature</id>
<link href="http://www.zotero.org/styles/nature" rel="self"/>
<link href="http://www.nature.com/nature/authors/gta/index.html#a5.4" rel="documentation"/>
<link href="http://www.nature.com/srep/publish/guidelines#references" rel="documentation"/>
<author>
<name>Michael Berkowitz</name>
<email>mberkowi@gmu.edu</email>
</author>
<category citation-format="numeric"/>
<category field="science"/>
<category field="generic-base"/>
<issn>0028-0836</issn>
<eissn>1476-4687</eissn>
<updated>2022-07-02T13:18:26+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<macro name="title">
<choose>
<if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<text variable="title" font-style="italic"/>
</if>
<else>
<text variable="title"/>
</else>
</choose>
</macro>
<macro name="author">
<names variable="author">
<name sort-separator=", " delimiter=", " and="symbol" initialize-with=". " delimiter-precedes-last="never" name-as-sort-order="all"/>
<label form="short" prefix=", "/>
<et-al font-style="italic"/>
</names>
</macro>
<macro name="access">
<choose>
<if variable="volume" type="article" match="any"/>
<else-if variable="DOI">
<text variable="DOI" prefix="doi:"/>
</else-if>
</choose>
</macro>
<macro name="issuance">
<choose>
<if type="bill book graphic legal_case legislation motion_picture song thesis chapter paper-conference" match="any">
<group delimiter="; " suffix=".">
<group delimiter=", " prefix="(" suffix=")">
<text variable="publisher" form="long"/>
<date variable="issued">
<date-part name="year"/>
</date>
</group>
</group>
</if>
<else-if type="article">
<group delimiter=" ">
<choose>
<if variable="genre" match="any">
<text variable="genre" text-case="capitalize-first"/>
</if>
<else>
<text term="article" text-case="capitalize-first"/>
</else>
</choose>
<text term="at"/>
<choose>
<if variable="DOI" match="any">
<text variable="DOI" prefix="https://doi.org/"/>
</if>
<else>
<text variable="URL"/>
</else>
</choose>
<date date-parts="year" form="text" variable="issued" prefix="(" suffix=")"/>
</group>
</else-if>
<else-if type="report webpage post post-weblog" match="any">
<group delimiter=" ">
<text variable="URL"/>
<date date-parts="year" form="text" variable="issued" prefix="(" suffix=")"/>
</group>
</else-if>
<else>
<date variable="issued" prefix="(" suffix=")">
<date-part name="year"/>
</date>
</else>
</choose>
</macro>
<macro name="container-title">
<choose>
<if type="article-journal">
<text variable="container-title" font-style="italic" form="short"/>
</if>
<else>
<text variable="container-title" font-style="italic"/>
</else>
</choose>
</macro>
<macro name="editor">
<choose>
<if type="chapter paper-conference" match="any">
<names variable="editor" prefix="(" suffix=")">
<label form="short" suffix=" "/>
<name and="symbol" delimiter-precedes-last="never" initialize-with=". " name-as-sort-order="all"/>
</names>
</if>
</choose>
</macro>
<macro name="volume">
<choose>
<if type="article-journal" match="any">
<text variable="volume" font-weight="bold" suffix=","/>
</if>
<else>
<group delimiter=" ">
<label variable="volume" form="short"/>
<text variable="volume"/>
</group>
</else>
</choose>
</macro>
<citation collapse="citation-number">
<sort>
<key variable="citation-number"/>
</sort>
<layout vertical-align="sup" delimiter=",">
<text variable="citation-number"/>
</layout>
</citation>
<bibliography et-al-min="6" et-al-use-first="1" second-field-align="flush" entry-spacing="0" line-spacing="2">
<layout suffix=".">
<text variable="citation-number" suffix="."/>
<group delimiter=" ">
<text macro="author" suffix="."/>
<text macro="title" suffix="."/>
<choose>
<if type="chapter paper-conference" match="any">
<text term="in"/>
</if>
</choose>
<text macro="container-title"/>
<text macro="editor"/>
<text macro="volume"/>
<text variable="page"/>
<text macro="issuance"/>
<text macro="access"/>
</group>
</layout>
</bibliography>
</style>
+229
View File
@@ -0,0 +1,229 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" default-locale="en-US">
<info>
<title>Proceedings of the National Academy of Sciences of the United States of America</title>
<title-short>PNAS</title-short>
<id>http://www.zotero.org/styles/pnas</id>
<link href="http://www.zotero.org/styles/pnas" rel="self"/>
<link href="http://www.pnas.org/site/authors/procedures.xhtml" rel="documentation"/>
<author>
<name>Julian Onions</name>
<email>julian.onions@gmail.com</email>
</author>
<contributor>
<name>Rintze Zelle</name>
<uri>http://twitter.com/rintzezelle</uri>
</contributor>
<contributor>
<name>Bela Hausmann</name>
<uri>https://github.com/and3k</uri>
</contributor>
<contributor>
<name>Patrick O'Brien</name>
</contributor>
<category citation-format="numeric"/>
<category field="science"/>
<issn>0027-8424</issn>
<eissn>1091-6490</eissn>
<summary>The Proceedings of the National Academy of Sciences Journal style as per the updated guidelines from 04/2019.</summary>
<updated>2024-03-27T16:45:36+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<macro name="editor">
<names variable="editor" prefix=" " delimiter=", ">
<name delimiter-precedes-last="always" initialize-with=". " sort-separator=" "/>
<et-al font-style="italic"/>
<label form="short" text-case="capitalize-first" strip-periods="false" prefix=", "/>
</names>
</macro>
<macro name="author">
<names variable="author">
<name delimiter-precedes-last="always" initialize-with=". " sort-separator=" "/>
<et-al font-style="italic"/>
<label form="short" text-case="capitalize-first" prefix=", "/>
<substitute>
<names variable="editor"/>
</substitute>
</names>
</macro>
<macro name="access">
<choose>
<if match="any" type="webpage post post-weblog article">
<group delimiter=" ">
<group delimiter=": ">
<text term="available at" text-case="capitalize-first"/>
<text variable="URL"/>
</group>
<group prefix=" [" suffix="]">
<text term="accessed" text-case="capitalize-first" suffix=" "/>
<date variable="accessed">
<date-part name="day" suffix=" "/>
<date-part name="month" suffix=" "/>
<date-part name="year"/>
</date>
</group>
</group>
</if>
<else-if type="article-journal" match="any">
<choose>
<if variable="volume" match="none">
<text variable="DOI" prefix="https://doi.org/"/>
</if>
</choose>
</else-if>
<else-if type="article" match="any">
<group delimiter=" ">
<group delimiter=": ">
<text term="available at" text-case="capitalize-first"/>
<text variable="URL"/>
</group>
<group prefix="(" suffix=")">
<text term="accessed" suffix=" "/>
<date variable="accessed">
<date-part name="day" suffix=" "/>
<date-part name="month" suffix=" "/>
<date-part name="year"/>
</date>
</group>
</group>
</else-if>
<else-if type="dataset software" match="any">
<group delimiter=". ">
<text variable="DOI" prefix="https://doi.org/"/>
<date variable="issued" prefix="Deposited ">
<date-part name="day" suffix=" "/>
<date-part name="month" suffix=" "/>
<date-part name="year"/>
</date>
</group>
</else-if>
</choose>
</macro>
<macro name="title">
<choose>
<if type="book">
<text variable="title" font-style="italic"/>
</if>
<else-if type="chapter report thesis" match="any">
<text variable="title" quotes="true"/>
</else-if>
<else>
<text variable="title"/>
</else>
</choose>
</macro>
<macro name="publisher">
<text variable="publisher"/>
</macro>
<macro name="edition">
<choose>
<if is-numeric="edition">
<group delimiter=" ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short" text-case="capitalize-first"/>
</group>
</if>
<else>
<text variable="edition"/>
</else>
</choose>
</macro>
<macro name="year-date">
<date variable="issued">
<date-part name="year"/>
</date>
</macro>
<citation collapse="citation-number">
<sort>
<key variable="citation-number"/>
</sort>
<layout prefix="(" suffix=")" delimiter=", ">
<text variable="citation-number"/>
</layout>
</citation>
<bibliography second-field-align="flush" et-al-min="6" et-al-use-first="1" delimiter-precedes-et-al="always">
<layout suffix=".">
<text variable="citation-number" suffix=". "/>
<group delimiter=", " suffix=".">
<text macro="author"/>
<choose>
<if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<group delimiter=" ">
<group delimiter=", ">
<text macro="title"/>
<text macro="editor"/>
<text macro="edition"/>
</group>
<group delimiter=", " prefix="(" suffix=")">
<text macro="publisher"/>
<text macro="year-date"/>
</group>
</group>
</if>
<else-if type="chapter paper-conference" match="any">
<group delimiter=" ">
<text macro="title"/>
<text term="in"/>
<group delimiter=", ">
<text variable="container-title" text-case="title" font-style="italic"/>
<text variable="collection-title" prefix=" " suffix="."/>
<text macro="edition"/>
<group delimiter=" ">
<text macro="editor"/>
<group delimiter=", " prefix="(" suffix=")">
<text macro="publisher"/>
<text macro="year-date"/>
</group>
</group>
<group>
<label suffix=" " variable="page" form="short"/>
<text variable="page"/>
</group>
</group>
</group>
</else-if>
<else-if type="thesis" match="any">
<group delimiter=" ">
<group delimiter=", " suffix=".">
<text macro="title"/>
<text variable="publisher"/>
<text variable="publisher-place"/>
</group>
<text macro="year-date" prefix="(" suffix=")"/>
</group>
</else-if>
<else-if type="article" match="any">
<group delimiter=". " suffix=".">
<text macro="title"/>
<group delimiter=" ">
<text variable="container-title" form="short" font-style="italic"/>
<text term="preprint" text-case="capitalize-first" prefix="[" suffix="]"/>
<text macro="year-date" prefix="(" suffix=")"/>
</group>
</group>
</else-if>
<else-if type="dataset" match="any">
<group delimiter=". ">
<text variable="title"/>
<text variable="publisher"/>
</group>
</else-if>
<else>
<group delimiter=". ">
<text macro="title"/>
<group delimiter=" ">
<text variable="container-title" form="short" font-style="italic"/>
<group delimiter=", ">
<text variable="volume" font-weight="bold"/>
<text variable="page"/>
</group>
<text macro="year-date" prefix="(" suffix=")"/>
</group>
</group>
</else>
</choose>
</group>
<text prefix=" " macro="access"/>
</layout>
</bibliography>
</style>
Binary file not shown.
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 85 KiB

+33
View File
@@ -0,0 +1,33 @@
/*-- scss:defaults --*/
/*-- scss:rules --*/
:root {
--r-background-color: #fff;
--r-main-font: Source Sans Pro, simhei, microsoft yahei;
--r-main-font-size: 32px; // 正文字体大小
--r-main-color: #434343; // 正文颜色,松烟墨:#434343 乌墨:#1A1A1A#006D6D
--r-block-margin: 12px;
--r-heading-margin: 0 0 12px 0;
--r-heading-font: Source Sans Pro, simhei, microsoft yahei;
--r-heading-color: #0c4c8a; //标题颜色:深青蓝色:296364;海军蓝或藏青色:0c4c8a;深青色:006D6D;钻蓝色:0F52BA;酒红:800020
--r-heading-line-height: 1.2em;
--r-heading-letter-spacing: normal;
--r-heading-text-transform: none;
--r-heading-text-shadow: none;
--r-heading-font-weight: 900;
--r-heading1-text-shadow: none;
--r-heading1-size: 2.5em;
--r-heading2-size: 1.6em;
--r-heading3-size: 1.3em;
--r-heading4-size: 1em;
--r-code-font: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono,
Courier New, monospace;
--r-link-color: #ef562d;
--r-link-color-dark: #ef562d;
--r-link-color-hover: #d13076;
--r-selection-background-color: #98bdef;
--r-selection-color: #fff;
--quarto-hl-fu-color: #c53800;
}
+181
View File
@@ -0,0 +1,181 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" default-locale="en-GB">
<info>
<title>The ISME Journal</title>
<id>http://www.zotero.org/styles/the-isme-journal</id>
<link href="http://www.zotero.org/styles/the-isme-journal" rel="self"/>
<link href="http://www.zotero.org/styles/journal-of-frailty-and-aging" rel="template"/>
<link href="http://www.nature.com/ismej/ismej_new_gta.pdf" rel="documentation"/>
<author>
<name>Patrick O'Brien</name>
<email>obrienpat86@gmail.com</email>
</author>
<category citation-format="numeric"/>
<category field="biology"/>
<issn>1751-7362</issn>
<eissn>1751-7370</eissn>
<summary>The ISME Journal style, which is not the same as for Nature</summary>
<updated>2018-03-19T15:30:26+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<macro name="author">
<names variable="author">
<name sort-separator=" " initialize-with="" name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
<label form="short" strip-periods="true" prefix=" (" suffix=")"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
</substitute>
</names>
</macro>
<macro name="editor">
<text term="in" text-case="capitalize-first" suffix=": "/>
<names variable="editor">
<name sort-separator=" " initialize-with="" name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
<label form="short" strip-periods="true" prefix=" (" suffix=")."/>
</names>
</macro>
<macro name="edition">
<choose>
<if is-numeric="edition">
<group delimiter=" ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short" strip-periods="true"/>
</group>
</if>
<else>
<text variable="edition"/>
</else>
</choose>
</macro>
<macro name="title">
<choose>
<if type="book">
<group delimiter=", " suffix=". ">
<text variable="title"/>
<text macro="edition"/>
</group>
</if>
<else>
<text variable="title" suffix=". "/>
</else>
</choose>
</macro>
<macro name="publisher">
<group delimiter=", ">
<text variable="publisher"/>
<text variable="publisher-place"/>
</group>
</macro>
<macro name="year-date">
<date variable="issued">
<date-part name="year"/>
</date>
</macro>
<citation collapse="citation-number">
<sort>
<key variable="citation-number"/>
</sort>
<layout prefix="[" suffix="]" delimiter=", ">
<text variable="citation-number"/>
</layout>
</citation>
<bibliography et-al-min="7" et-al-use-first="6" second-field-align="flush" line-spacing="2" entry-spacing="0">
<layout>
<text variable="citation-number" suffix=". "/>
<group delimiter=". ">
<text macro="author"/>
<text macro="title"/>
</group>
<choose>
<if type="chapter">
<text macro="editor"/>
<group delimiter=". " suffix=". ">
<group prefix=" " delimiter=", ">
<text variable="container-title" font-style="italic"/>
<text macro="edition"/>
</group>
<text macro="year-date"/>
<group delimiter=", ">
<text macro="publisher"/>
<group delimiter=" ">
<label variable="page" form="short" strip-periods="true"/>
<text variable="page"/>
</group>
</group>
</group>
</if>
<else-if type="paper-conference">
<text macro="editor"/>
<group delimiter=". " suffix=". ">
<group prefix=" " delimiter=", ">
<text variable="container-title" form="short" font-style="italic"/>
<text macro="edition"/>
</group>
<text macro="year-date"/>
<group delimiter=", ">
<text macro="publisher"/>
<group delimiter=" ">
<label variable="page" form="short" strip-periods="true"/>
<text variable="page"/>
</group>
</group>
</group>
</else-if>
<else-if type="article-journal">
<group delimiter="; " suffix=". ">
<group delimiter=" ">
<text variable="container-title" suffix=" " form="short" strip-periods="true" font-style="italic"/>
<text macro="year-date"/>
</group>
<group delimiter=": ">
<text variable="volume" font-weight="bold"/>
<text variable="page"/>
</group>
</group>
</else-if>
<else-if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<group delimiter=". " suffix=". ">
<text variable="container-title" suffix=" " font-style="italic"/>
<text macro="year-date"/>
<text macro="publisher"/>
</group>
</else-if>
<else-if type="webpage">
<group suffix=". ">
<text variable="container-title" suffix=". " font-style="italic"/>
<text variable="URL" suffix=". "/>
<date variable="accessed">
<date-part prefix="Accessed " name="day" suffix=" "/>
<date-part name="month" form="short" suffix=" " strip-periods="true"/>
<date-part name="year"/>
</date>
</group>
</else-if>
<else-if type="thesis">
<group delimiter=". " suffix=". ">
<text variable="container-title" suffix=" " font-style="italic"/>
<text macro="year-date"/>
<group delimiter=", ">
<text variable="genre"/>
<text variable="publisher"/>
</group>
</group>
</else-if>
<else>
<group>
<group delimiter=". " suffix=". ">
<text variable="container-title" form="short" suffix=" " strip-periods="true" font-style="italic"/>
<text macro="year-date"/>
<text macro="publisher"/>
</group>
<group prefix=", " delimiter=": ">
<text variable="volume" font-weight="bold"/>
<text variable="page"/>
</group>
</group>
</else>
</choose>
</layout>
</bibliography>
</style>
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" version="1.0" default-locale="en-US">
<!-- Elsevier, generated from "elsevier" metadata at https://github.com/citation-style-language/journals -->
<info>
<title>Water Research</title>
<id>http://www.zotero.org/styles/water-research</id>
<link href="http://www.zotero.org/styles/water-research" rel="self"/>
<link href="http://www.zotero.org/styles/elsevier-harvard" rel="independent-parent"/>
<category citation-format="author-date"/>
<issn>0043-1354</issn>
<updated>2018-03-09T05:06:46+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
</style>