update
This commit is contained in:
+9
-12
@@ -1,8 +1,7 @@
|
||||
---
|
||||
subtitle: "演示材料"
|
||||
subtitle: "Track Changes"
|
||||
---
|
||||
|
||||
<iframe title="项目启动汇报" width=800 height=600 src = "./20230101_项目启动/index.html"></iframe>
|
||||
|
||||
```{r}
|
||||
#| include: false
|
||||
@@ -13,16 +12,14 @@ rmdify::rmd_init()
|
||||
|
||||
```{r}
|
||||
#| output: asis
|
||||
data.frame(fd = dir(".", pattern = "[-_]")) |>
|
||||
dplyr::mutate(fn = purrr::map_chr(fd, ~ file.path(.x, dir(.x,
|
||||
pattern = "index.qmd|index.doc|index.pdf|index.ppt")))) |>
|
||||
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"))))) |>
|
||||
data.frame(fn = dir(".", pattern = "-.*.qmd")) |>
|
||||
dplyr::mutate(rawfn = gsub("^.*_", "", fn)) |>
|
||||
dplyr::mutate(time1 = lubridate::ymd_h(gsub("-.*$", "", fn))) |>
|
||||
dplyr::mutate(time2 = lubridate::ymd_h(gsub("^.*-(.*)_.*$", "\\1", fn))) |>
|
||||
dplyr::arrange(dplyr::desc(time2), rawfn, dplyr::desc(time1)) |>
|
||||
dplyr::mutate(htmlstr = paste0("- [**", rawfn, "**: ",
|
||||
format(time1, "%y-%m-%d %H:%M"), " ⇨ **", format(time2, "%Y-%m-%d %H:%M"),
|
||||
"**](", gsub("qmd$", "html", fn), ")\n\n")) |>
|
||||
dplyr::pull(htmlstr) |>
|
||||
paste(collapse = "") |>
|
||||
cat()
|
||||
|
||||
@@ -65,5 +65,45 @@ ins {
|
||||
.rem {
|
||||
background-color: darkorange;
|
||||
color: lightyellow;
|
||||
text-decoration-thickness: 2.0px;
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
title: Critic-markup
|
||||
author: mloubout
|
||||
version: 1.0.3
|
||||
quarto-required: ">=1.2.198"
|
||||
contributes:
|
||||
filters:
|
||||
- critic-markup.lua
|
||||
|
||||
@@ -0,0 +1,174 @@
|
||||
|
||||
local maybesubs = false
|
||||
local stk_end = false
|
||||
|
||||
add = pandoc.RawInline('html', "<ins>")
|
||||
adde = pandoc.RawInline('html', "</ins>")
|
||||
|
||||
rm = pandoc.RawInline('html', "<del>")
|
||||
rme = pandoc.RawInline('html', "</del>")
|
||||
rmeadd = pandoc.RawInline('html', "</del><ins>")
|
||||
|
||||
mark = pandoc.RawInline('html', "<mark>")
|
||||
marke = pandoc.RawInline('html', "</mark>")
|
||||
|
||||
comm = pandoc.RawInline('html', [[<span class="critic comment">]])
|
||||
comme = pandoc.RawInline('html', "</span>")
|
||||
|
||||
ruless = {['{%+%+']=add, ['{\u{2013}']=rm, ['{==']=mark, ['{>>']=comm, ['{~~']=rm,
|
||||
['%+%+}']=adde, ['\u{2013}}']=rme, ['==}']=marke, ['<<}']=comme, ['~~}']=rme, ['~>']=rmeadd}
|
||||
|
||||
-- Strikeout before/after
|
||||
st_b = '{'
|
||||
st_e = '}'
|
||||
|
||||
local scriptcode = [[
|
||||
|
||||
<div id="criticnav">
|
||||
<ul>
|
||||
<li id="markup-button">Markup</li>
|
||||
<li id="original-button">Original</li>
|
||||
<li id="edited-button">Edited</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
function critic() {
|
||||
|
||||
$('.content').addClass('markup');
|
||||
$('#markup-button').addClass('active');
|
||||
$('ins.break').unwrap();
|
||||
$('span.critic.comment').wrap('<span class="popoverc" /></span>');
|
||||
$('span.critic.comment').before('‡');
|
||||
}
|
||||
|
||||
function original() {
|
||||
$('#original-button').addClass('active');
|
||||
$('#edited-button').removeClass('active');
|
||||
$('#markup-button').removeClass('active');
|
||||
|
||||
$('.content').addClass('original');
|
||||
$('.content').removeClass('edited');
|
||||
$('.content').removeClass('markup');
|
||||
}
|
||||
|
||||
function edited() {
|
||||
$('#original-button').removeClass('active');
|
||||
$('#edited-button').addClass('active');
|
||||
$('#markup-button').removeClass('active');
|
||||
|
||||
$('.content').removeClass('original');
|
||||
$('.content').addClass('edited');
|
||||
$('.content').removeClass('markup');
|
||||
}
|
||||
|
||||
function markup() {
|
||||
$('#original-button').removeClass('active');
|
||||
$('#edited-button').removeClass('active');
|
||||
$('#markup-button').addClass('active');
|
||||
|
||||
$('.content').removeClass('original');
|
||||
$('.content').removeClass('edited');
|
||||
$('.content').addClass('markup');
|
||||
}
|
||||
|
||||
var o = document.getElementById("original-button");
|
||||
var e = document.getElementById("edited-button");
|
||||
var m = document.getElementById("markup-button");
|
||||
|
||||
window.onload = critic();
|
||||
o.onclick = original;
|
||||
e.onclick = edited;
|
||||
m.onclick = markup;
|
||||
</script>
|
||||
]]
|
||||
|
||||
function cirtiblock(blocks, k, v)
|
||||
local newblock = {}
|
||||
for ti,t in pairs(blocks) do
|
||||
if t.text then
|
||||
i, j = t.text:find(k)
|
||||
if i then
|
||||
newblock[#newblock + 1] = pandoc.Str(t.text:sub(1, i-1))
|
||||
newblock[#newblock + 1] = v
|
||||
newblock[#newblock + 1] = pandoc.Str(t.text:sub(j+1, t.text:len()))
|
||||
else
|
||||
newblock[#newblock + 1] = t
|
||||
end
|
||||
else
|
||||
newblock[#newblock + 1] = t
|
||||
end
|
||||
end
|
||||
return newblock
|
||||
end
|
||||
|
||||
|
||||
if FORMAT:match 'html' then
|
||||
|
||||
function Str (el)
|
||||
local replaced = {el}
|
||||
-- Check for standard substitutions
|
||||
for k,v in pairs(ruless) do
|
||||
replaced = cirtiblock(replaced, k, v)
|
||||
end
|
||||
return replaced
|
||||
end
|
||||
|
||||
function Strikeout (strk)
|
||||
return strk.content
|
||||
end
|
||||
|
||||
-- Check Inlines for Strikeout (~~) and remove brackets before/after for replacement
|
||||
function Inlines (inlines)
|
||||
for i = #inlines-1,2,-1 do
|
||||
if inlines[i] and inlines[i].t == 'Strikeout' and inlines[i+1] then
|
||||
if inlines[i+1].t == 'Str' then
|
||||
if inlines[i+1].text == st_e then
|
||||
inlines[i+1] = adde
|
||||
end
|
||||
end
|
||||
end
|
||||
if inlines[i] and inlines[i].t == 'Strikeout' and inlines[i-1] then
|
||||
if inlines[i-1].t == 'Str' then
|
||||
if inlines[i-1].text == st_b then
|
||||
inlines[i-1] = rm
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return inlines
|
||||
end
|
||||
end
|
||||
|
||||
--- From the lightbox filter
|
||||
local function add_header_includes(meta, blocks)
|
||||
|
||||
local header_includes = pandoc.List(blocks)
|
||||
|
||||
-- add any exisiting meta['header-includes']
|
||||
-- it could be a MetaList or a single String
|
||||
if meta['header-includes'] then
|
||||
if type(meta['header-includes']) == 'List' then
|
||||
header_includes:extend(meta['header-includes'])
|
||||
else
|
||||
header_includes:insert(meta['header-includes'])
|
||||
end
|
||||
end
|
||||
|
||||
meta['header-includes'] = pandoc.MetaBlocks(header_includes)
|
||||
return meta
|
||||
end
|
||||
|
||||
|
||||
function criticheader (meta)
|
||||
quarto.doc.add_html_dependency({
|
||||
name = 'critic',
|
||||
scripts = {'critic.min.js'},
|
||||
stylesheets = {'critic.css'}
|
||||
})
|
||||
-- inject the rendering code
|
||||
quarto.doc.include_text("after-body", scriptcode)
|
||||
end
|
||||
|
||||
-- All pass with Meta first
|
||||
return {{Meta = criticheader}, {Inlines = Inlines}, {Strikeout = Strikeout}, {Str = Str}}
|
||||
@@ -0,0 +1,131 @@
|
||||
.fullcontent {
|
||||
padding-top: 30px !important;
|
||||
}
|
||||
|
||||
#criticnav {
|
||||
position: fixed;
|
||||
z-index: 1100;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
border-bottom: solid 1px #696f75;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: rgba(255,255,255,0.95);
|
||||
color: #696f75;
|
||||
font-size: 14px;
|
||||
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: 15%;
|
||||
min-width: 100px;
|
||||
text-align: center;
|
||||
padding: 5px 0 3px !important;
|
||||
margin: 5px 2px !important;
|
||||
line-height: 1em;
|
||||
float: left;
|
||||
text-transform: uppercase;
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
border-radius: 20px;
|
||||
border: 1px solid rgba(255,255,255,0);
|
||||
color: #777 !important
|
||||
}
|
||||
|
||||
#criticnav ul li:before {
|
||||
content: none !important
|
||||
}
|
||||
|
||||
#criticnav ul li.active {
|
||||
border: 1px solid #696f75
|
||||
}
|
||||
|
||||
.original del {
|
||||
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.original ins,
|
||||
.original span.popoverc,
|
||||
.original ins.break {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.edited ins {
|
||||
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.edited del,
|
||||
.edited span.popoverc,
|
||||
.edited ins.break {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.original mark,
|
||||
.edited mark {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.markup mark {
|
||||
background-color: #fffd38;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.markup del {
|
||||
background-color: rgba(183,47,47,0.4);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.markup ins {
|
||||
background-color: rgba(152,200,86,0.4);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.markup ins.break {
|
||||
display: block;
|
||||
line-height: 2px;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.markup ins.break span {
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
.markup .popoverc {
|
||||
background-color: #e5b000;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.markup .popoverc .critic.comment {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.markup .popoverc:hover span.critic.comment {
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 200px;
|
||||
left: 30%;
|
||||
font-size: 0.8em;
|
||||
color: #ccc;
|
||||
background-color: #333;
|
||||
z-index: 10;
|
||||
padding: 0.5em 1em;
|
||||
border-radius: 0.5em;
|
||||
}
|
||||
|
||||
@media print {
|
||||
#criticnav {
|
||||
display: none !important
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
+2
-2
@@ -73,6 +73,8 @@ website:
|
||||
file: MS/SM.qmd
|
||||
- text: "Revision Notes"
|
||||
file: MS/RN.qmd
|
||||
- text: "Trackchanges"
|
||||
file: TC/index.qmd
|
||||
- text: "Slides"
|
||||
file: SD/index.qmd
|
||||
- text: "Other"
|
||||
@@ -83,8 +85,6 @@ website:
|
||||
file: MS/CL.qmd
|
||||
- text: "Author Credits"
|
||||
file: MS/AC.qmd
|
||||
- text: "Trackchanges"
|
||||
file: TC/index.qmd
|
||||
- text: "Report"
|
||||
file: RP/index.qmd
|
||||
- text: "Acomplishment"
|
||||
|
||||
Reference in New Issue
Block a user