device-56.home 2026-3-29:22:14:22
This commit is contained in:
2
.obsidian/plugins/lazy-plugins/data.json
vendored
2
.obsidian/plugins/lazy-plugins/data.json
vendored
@@ -13,7 +13,7 @@
|
||||
"startupType": "disabled"
|
||||
},
|
||||
"obsidian-advanced-slides": {
|
||||
"startupType": "disabled"
|
||||
"startupType": "short"
|
||||
},
|
||||
"obsidian-asciimath": {
|
||||
"startupType": "disabled"
|
||||
|
||||
@@ -627,8 +627,7 @@ p.align-center {
|
||||
--dbg-size: 1px;
|
||||
border: 1px solid red;
|
||||
}
|
||||
.reset-margin,
|
||||
.reset-margin > * {
|
||||
.reset-margin {
|
||||
--r-block-margin: 0;
|
||||
--r-heading-margin: 0;
|
||||
}
|
||||
|
||||
@@ -75,13 +75,13 @@
|
||||
--r-selection-color: #fff;
|
||||
}
|
||||
.reveal-viewport {
|
||||
background: #1c1e20;
|
||||
background: -moz-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #555a5f), color-stop(100%, #1c1e20));
|
||||
background: -webkit-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: -o-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: -ms-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: rgb(28, 30, 32);
|
||||
background: -moz-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, rgb(85, 90, 95)), color-stop(100%, rgb(28, 30, 32)));
|
||||
background: -webkit-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background: -o-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background: -ms-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background: radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background-color: var(--r-background-color);
|
||||
}
|
||||
.reveal {
|
||||
@@ -179,8 +179,8 @@
|
||||
.reveal img,
|
||||
.reveal video,
|
||||
.reveal iframe {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.reveal strong,
|
||||
.reveal b {
|
||||
@@ -360,6 +360,9 @@
|
||||
canvas[data-chart] {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.reveal .hljs {
|
||||
min-height: 50%;
|
||||
}
|
||||
.reveal .slides {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
{
|
||||
"port": "",
|
||||
"port": "3123",
|
||||
"autoReload": true,
|
||||
"exportDirectory": "/presentations",
|
||||
"enableChalkboard": true,
|
||||
"enableChalkboard": false,
|
||||
"enableOverview": true,
|
||||
"enableMenu": true,
|
||||
"enablePointer": false,
|
||||
"enablePointer": true,
|
||||
"enableTimeBar": false,
|
||||
"theme": "black",
|
||||
"theme": "serif",
|
||||
"highlightTheme": "zenburn",
|
||||
"transition": "fade",
|
||||
"transition": "slide",
|
||||
"transitionSpeed": "normal",
|
||||
"controls": false,
|
||||
"controls": true,
|
||||
"progress": true,
|
||||
"slideNumber": true,
|
||||
"showGrid": false,
|
||||
"autoComplete": "inPreview",
|
||||
"autoComplete": "never",
|
||||
"paneMode": "tab",
|
||||
"motm": ""
|
||||
"motm": "2026-03-29T19:04:49.274Z"
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -57,13 +57,13 @@
|
||||
--r-selection-color: #fff;
|
||||
}
|
||||
.reveal-viewport {
|
||||
background: #f7f2d3;
|
||||
background: -moz-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
|
||||
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, white), color-stop(100%, #f7f2d3));
|
||||
background: -webkit-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
|
||||
background: -o-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
|
||||
background: -ms-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
|
||||
background: radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
|
||||
background: rgb(247, 242, 211);
|
||||
background: -moz-radial-gradient(center, circle cover, rgb(255, 255, 255) 0%, rgb(247, 242, 211) 100%);
|
||||
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, rgb(255, 255, 255)), color-stop(100%, rgb(247, 242, 211)));
|
||||
background: -webkit-radial-gradient(center, circle cover, rgb(255, 255, 255) 0%, rgb(247, 242, 211) 100%);
|
||||
background: -o-radial-gradient(center, circle cover, rgb(255, 255, 255) 0%, rgb(247, 242, 211) 100%);
|
||||
background: -ms-radial-gradient(center, circle cover, rgb(255, 255, 255) 0%, rgb(247, 242, 211) 100%);
|
||||
background: radial-gradient(center, circle cover, rgb(255, 255, 255) 0%, rgb(247, 242, 211) 100%);
|
||||
background-color: var(--r-background-color);
|
||||
}
|
||||
.reveal {
|
||||
@@ -161,8 +161,8 @@
|
||||
.reveal img,
|
||||
.reveal video,
|
||||
.reveal iframe {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.reveal strong,
|
||||
.reveal b {
|
||||
@@ -342,3 +342,6 @@
|
||||
canvas[data-chart] {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.reveal .hljs {
|
||||
min-height: 50%;
|
||||
}
|
||||
|
||||
@@ -146,8 +146,8 @@
|
||||
.reveal img,
|
||||
.reveal video,
|
||||
.reveal iframe {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.reveal strong,
|
||||
.reveal b {
|
||||
@@ -327,3 +327,6 @@
|
||||
canvas[data-chart] {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.reveal .hljs {
|
||||
min-height: 50%;
|
||||
}
|
||||
|
||||
@@ -151,8 +151,8 @@
|
||||
.reveal img,
|
||||
.reveal video,
|
||||
.reveal iframe {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.reveal strong,
|
||||
.reveal b {
|
||||
@@ -332,6 +332,9 @@
|
||||
canvas[data-chart] {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.reveal .hljs {
|
||||
min-height: 50%;
|
||||
}
|
||||
.reveal p {
|
||||
font-weight: 300;
|
||||
text-shadow: 1px 1px #222;
|
||||
|
||||
@@ -146,8 +146,8 @@
|
||||
.reveal img,
|
||||
.reveal video,
|
||||
.reveal iframe {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.reveal strong,
|
||||
.reveal b {
|
||||
@@ -327,6 +327,9 @@
|
||||
canvas[data-chart] {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.reveal .hljs {
|
||||
min-height: 50%;
|
||||
}
|
||||
.reveal table th,
|
||||
.reveal table td {
|
||||
vertical-align: top;
|
||||
|
||||
@@ -57,13 +57,13 @@
|
||||
--r-selection-color: #fff;
|
||||
}
|
||||
.reveal-viewport {
|
||||
background: #1c1e20;
|
||||
background: -moz-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #555a5f), color-stop(100%, #1c1e20));
|
||||
background: -webkit-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: -o-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: -ms-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: rgb(28, 30, 32);
|
||||
background: -moz-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, rgb(85, 90, 95)), color-stop(100%, rgb(28, 30, 32)));
|
||||
background: -webkit-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background: -o-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background: -ms-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background: radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background-color: var(--r-background-color);
|
||||
}
|
||||
.reveal {
|
||||
@@ -161,8 +161,8 @@
|
||||
.reveal img,
|
||||
.reveal video,
|
||||
.reveal iframe {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.reveal strong,
|
||||
.reveal b {
|
||||
@@ -342,3 +342,6 @@
|
||||
canvas[data-chart] {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.reveal .hljs {
|
||||
min-height: 50%;
|
||||
}
|
||||
|
||||
@@ -75,13 +75,13 @@
|
||||
--r-selection-color: #fff;
|
||||
}
|
||||
.reveal-viewport {
|
||||
background: #1c1e20;
|
||||
background: -moz-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #555a5f), color-stop(100%, #1c1e20));
|
||||
background: -webkit-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: -o-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: -ms-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
|
||||
background: rgb(28, 30, 32);
|
||||
background: -moz-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, rgb(85, 90, 95)), color-stop(100%, rgb(28, 30, 32)));
|
||||
background: -webkit-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background: -o-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background: -ms-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background: radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
|
||||
background-color: var(--r-background-color);
|
||||
}
|
||||
.reveal {
|
||||
@@ -179,8 +179,8 @@
|
||||
.reveal img,
|
||||
.reveal video,
|
||||
.reveal iframe {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.reveal strong,
|
||||
.reveal b {
|
||||
@@ -360,6 +360,9 @@
|
||||
canvas[data-chart] {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.reveal .hljs {
|
||||
min-height: 50%;
|
||||
}
|
||||
.reveal .slides {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
@@ -148,8 +148,8 @@ html * {
|
||||
.reveal img,
|
||||
.reveal video,
|
||||
.reveal iframe {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.reveal strong,
|
||||
.reveal b {
|
||||
@@ -329,3 +329,6 @@ html * {
|
||||
canvas[data-chart] {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.reveal .hljs {
|
||||
min-height: 50%;
|
||||
}
|
||||
|
||||
@@ -144,8 +144,8 @@
|
||||
.reveal img,
|
||||
.reveal video,
|
||||
.reveal iframe {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.reveal strong,
|
||||
.reveal b {
|
||||
@@ -325,3 +325,6 @@
|
||||
canvas[data-chart] {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.reveal .hljs {
|
||||
min-height: 50%;
|
||||
}
|
||||
|
||||
@@ -152,8 +152,8 @@
|
||||
.reveal img,
|
||||
.reveal video,
|
||||
.reveal iframe {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.reveal strong,
|
||||
.reveal b {
|
||||
@@ -333,3 +333,6 @@
|
||||
canvas[data-chart] {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.reveal .hljs {
|
||||
min-height: 50%;
|
||||
}
|
||||
|
||||
@@ -144,8 +144,8 @@
|
||||
.reveal img,
|
||||
.reveal video,
|
||||
.reveal iframe {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.reveal strong,
|
||||
.reveal b {
|
||||
@@ -325,3 +325,6 @@
|
||||
canvas[data-chart] {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.reveal .hljs {
|
||||
min-height: 50%;
|
||||
}
|
||||
|
||||
@@ -150,8 +150,8 @@
|
||||
.reveal img,
|
||||
.reveal video,
|
||||
.reveal iframe {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.reveal strong,
|
||||
.reveal b {
|
||||
@@ -331,3 +331,6 @@
|
||||
canvas[data-chart] {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.reveal .hljs {
|
||||
min-height: 50%;
|
||||
}
|
||||
|
||||
@@ -139,8 +139,8 @@ html * {
|
||||
.reveal img,
|
||||
.reveal video,
|
||||
.reveal iframe {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.reveal strong,
|
||||
.reveal b {
|
||||
@@ -320,3 +320,6 @@ html * {
|
||||
canvas[data-chart] {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.reveal .hljs {
|
||||
min-height: 50%;
|
||||
}
|
||||
|
||||
@@ -146,8 +146,8 @@
|
||||
.reveal img,
|
||||
.reveal video,
|
||||
.reveal iframe {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.reveal strong,
|
||||
.reveal b {
|
||||
@@ -327,3 +327,6 @@
|
||||
canvas[data-chart] {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.reveal .hljs {
|
||||
min-height: 50%;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"version": "1.15.0"
|
||||
"version": "1.20.0"
|
||||
}
|
||||
144
.obsidian/plugins/obsidian-advanced-slides/plugin/elapsed-time-bar/elapsed-time-bar.js
vendored
Normal file
144
.obsidian/plugins/obsidian-advanced-slides/plugin/elapsed-time-bar/elapsed-time-bar.js
vendored
Normal file
@@ -0,0 +1,144 @@
|
||||
var ElapsedTimeBar = {
|
||||
// default value
|
||||
barColor: 'rgb(200,0,0)',
|
||||
pausedBarColor: 'rgba(200,0,0,.6)',
|
||||
|
||||
isPaused: false,
|
||||
isFinished: false,
|
||||
|
||||
allottedTime: null,
|
||||
timeProgressBar: null,
|
||||
startTime: null,
|
||||
pauseTime: null,
|
||||
pauseTimeDuration: 0,
|
||||
|
||||
/**
|
||||
* initialize elements
|
||||
*/
|
||||
handleReady() {
|
||||
var config = Reveal.getConfig();
|
||||
|
||||
// activate this plugin if config.allottedTime exists.
|
||||
if (!config.allottedTime) {
|
||||
console.warn('Failed to start ElapsedTimeBar plugin. "allottedTime" property is required.');
|
||||
return;
|
||||
}
|
||||
|
||||
// set configurations
|
||||
this.barColor = config.barColor || this.barColor;
|
||||
this.pausedBarColor = config.pausedBarColor || this.pausedBarColor;
|
||||
|
||||
// calc barHeight from config.barHeight or page-progress container
|
||||
var barHeight;
|
||||
var pageProgressContainer = document.querySelector('.progress');
|
||||
if (config.progressBarHeight) {
|
||||
barHeight = parseInt(config.progressBarHeight, 10) + 'px';
|
||||
|
||||
// override height of page-progress container
|
||||
pageProgressContainer && (pageProgressContainer.style.height = barHeight);
|
||||
} else if (config.progress && pageProgressContainer) {
|
||||
// get height from page-progress container
|
||||
barHeight = pageProgressContainer.getBoundingClientRect().height + 'px';
|
||||
} else {
|
||||
// default
|
||||
barHeight = '3px';
|
||||
}
|
||||
|
||||
// create container of time-progress
|
||||
var timeProgressContainer = document.createElement('div');
|
||||
timeProgressContainer.classList.add('progress');
|
||||
Object.entries({
|
||||
display: 'block',
|
||||
position: 'fixed',
|
||||
bottom: config.progress ? barHeight : 0,
|
||||
width: '100%',
|
||||
height: barHeight
|
||||
}).forEach(([k, v]) => {
|
||||
timeProgressContainer.style[k] = v;
|
||||
});
|
||||
document.querySelector('.reveal').appendChild(timeProgressContainer);
|
||||
|
||||
// create content of time-progress
|
||||
this.timeProgressBar = document.createElement('div');
|
||||
Object.entries({
|
||||
height: '100%',
|
||||
willChange: 'width'
|
||||
}).forEach(([k, v]) => {
|
||||
this.timeProgressBar.style[k] = v;
|
||||
});
|
||||
timeProgressContainer.appendChild(this.timeProgressBar);
|
||||
|
||||
// start timer
|
||||
this.start(config.allottedTime);
|
||||
},
|
||||
|
||||
/**
|
||||
* update repeatedly using requestAnimationFrame.
|
||||
*/
|
||||
loop() {
|
||||
if (this.isPaused) return;
|
||||
var now = +new Date();
|
||||
var elapsedTime = now - this.startTime - this.pauseTimeDuration;
|
||||
if (elapsedTime > this.allottedTime) {
|
||||
this.timeProgressBar.style.width = '100%';
|
||||
this.isFinished = true;
|
||||
} else {
|
||||
this.timeProgressBar.style.width = elapsedTime / this.allottedTime * 100 + '%';
|
||||
requestAnimationFrame(this.loop.bind(this));
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* set color of progress bar
|
||||
*/
|
||||
setBarColor() {
|
||||
if (this.isPaused) {
|
||||
this.timeProgressBar.style.backgroundColor = this.pausedBarColor;
|
||||
} else {
|
||||
this.timeProgressBar.style.backgroundColor = this.barColor;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* start(reset) timer with new allotted time.
|
||||
* @param {number} allottedTime
|
||||
* @param {number} [elapsedTime=0]
|
||||
*/
|
||||
start(allottedTime, elapsedTime = 0) {
|
||||
this.isFinished = false;
|
||||
this.isPaused = false;
|
||||
this.allottedTime = allottedTime;
|
||||
this.startTime = +new Date() - elapsedTime;
|
||||
this.pauseTimeDuration = 0;
|
||||
this.setBarColor();
|
||||
this.loop();
|
||||
},
|
||||
|
||||
reset() {
|
||||
this.start(this.allottedTime);
|
||||
},
|
||||
|
||||
pause() {
|
||||
if (this.isPaused) return;
|
||||
this.isPaused = true;
|
||||
this.pauseTime = +new Date();
|
||||
this.setBarColor();
|
||||
},
|
||||
|
||||
resume() {
|
||||
if (!this.isPaused) return;
|
||||
|
||||
// add paused time duration
|
||||
this.isPaused = false;
|
||||
this.pauseTimeDuration += new Date() - this.pauseTime;
|
||||
this.pauseTime = null;
|
||||
this.setBarColor();
|
||||
this.loop();
|
||||
}
|
||||
};
|
||||
|
||||
if (Reveal.isReady()) {
|
||||
ElapsedTimeBar.handleReady();
|
||||
} else {
|
||||
Reveal.addEventListener('ready', () => ElapsedTimeBar.handleReady());
|
||||
}
|
||||
@@ -106,7 +106,7 @@ const Plugin = {
|
||||
|
||||
var scrollState = { currentBlock: block };
|
||||
|
||||
// If there is at least one highlight step, generate
|
||||
// If there is more than one highlight step, generate
|
||||
// fragments
|
||||
var highlightSteps = Plugin.deserializeHighlightSteps( block.getAttribute( 'data-line-numbers' ) );
|
||||
if( highlightSteps.length > 1 ) {
|
||||
@@ -142,7 +142,7 @@ const Plugin = {
|
||||
|
||||
} );
|
||||
|
||||
block.removeAttribute( 'data-fragment-index' )
|
||||
block.removeAttribute( 'data-fragment-index' );
|
||||
block.setAttribute( 'data-line-numbers', Plugin.serializeHighlightSteps( [ highlightSteps[0] ] ) );
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -4,7 +4,7 @@
|
||||
* of external markdown documents.
|
||||
*/
|
||||
|
||||
import marked from 'marked'
|
||||
import { marked } from 'marked';
|
||||
|
||||
const DEFAULT_SLIDE_SEPARATOR = '\r?\n---\r?\n',
|
||||
DEFAULT_NOTES_SEPARATOR = 'notes?:',
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -56,7 +56,7 @@ export const MathJax3 = () => {
|
||||
let revealOptions = deck.getConfig().mathjax3 || {};
|
||||
let options = {...defaultOptions, ...revealOptions};
|
||||
options.tex = {...defaultOptions.tex, ...revealOptions.tex}
|
||||
options.options = {...options.options, ...defaultOptions.options}
|
||||
options.options = {...defaultOptions.options, ...revealOptions.options}
|
||||
options.startup = {...defaultOptions.startup, ...revealOptions.startup}
|
||||
|
||||
let url = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js';
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -4,16 +4,20 @@
|
||||
|
||||
import mermaid from "mermaid";
|
||||
|
||||
mermaid.mermaidAPI.initialize({
|
||||
// The node size will be calculated incorrectly if set `startOnLoad: start`,
|
||||
// so we need to manually render.
|
||||
startOnLoad: false,
|
||||
});
|
||||
|
||||
const Plugin = {
|
||||
id: "mermaid",
|
||||
|
||||
init: function (reveal) {
|
||||
|
||||
let { ...mermaidConfig } = reveal.getConfig().mermaid || {};
|
||||
|
||||
mermaid.mermaidAPI.initialize({
|
||||
// The node size will be calculated incorrectly if set `startOnLoad: start`,
|
||||
// so we need to manually render.
|
||||
startOnLoad: false,
|
||||
...mermaidConfig,
|
||||
});
|
||||
|
||||
const mermaidEls = reveal.getRevealElement().querySelectorAll(".mermaid");
|
||||
|
||||
Array.from(mermaidEls).forEach(function (el) {
|
||||
@@ -30,8 +34,16 @@ const Plugin = {
|
||||
insertSvg
|
||||
);
|
||||
} catch (error) {
|
||||
console.error(error, { graphDefinition, el });
|
||||
el.innerHTML = error.message;
|
||||
let errorStr = "";
|
||||
if (error?.str) {
|
||||
// From mermaid 9.1.4, error.message does not exists anymore
|
||||
errorStr = error.str;
|
||||
}
|
||||
if (error?.message) {
|
||||
errorStr = error.message;
|
||||
}
|
||||
console.error(errorStr, { error, graphDefinition, el });
|
||||
el.innerHTML = errorStr;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
||||
import speakerViewHTML from './speaker-view.html';
|
||||
|
||||
import marked from 'marked';
|
||||
import { marked } from 'marked';
|
||||
|
||||
/**
|
||||
* Handles opening of and synchronization with the reveal.js
|
||||
@@ -15,141 +15,172 @@ import marked from 'marked';
|
||||
*/
|
||||
const Plugin = () => {
|
||||
|
||||
let popup = null;
|
||||
let connectInterval;
|
||||
let speakerWindow = null;
|
||||
let deck;
|
||||
|
||||
let deck;
|
||||
/**
|
||||
* Opens a new speaker view window.
|
||||
*/
|
||||
function openSpeakerWindow() {
|
||||
|
||||
function openNotes() {
|
||||
// If a window is already open, focus it
|
||||
if( speakerWindow && !speakerWindow.closed ) {
|
||||
speakerWindow.focus();
|
||||
}
|
||||
else {
|
||||
speakerWindow = window.open( 'about:blank', 'reveal.js - Notes', 'width=1100,height=700' );
|
||||
speakerWindow.marked = marked;
|
||||
speakerWindow.document.write( speakerViewHTML );
|
||||
|
||||
if (popup && !popup.closed) {
|
||||
popup.focus();
|
||||
return;
|
||||
}
|
||||
if( !speakerWindow ) {
|
||||
alert( 'Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.' );
|
||||
return;
|
||||
}
|
||||
|
||||
popup = window.open( 'about:blank', 'reveal.js - Notes', 'width=1100,height=700' );
|
||||
popup.marked = marked;
|
||||
popup.document.write( speakerViewHTML );
|
||||
|
||||
if( !popup ) {
|
||||
alert( 'Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.' );
|
||||
return;
|
||||
connect();
|
||||
}
|
||||
|
||||
/**
|
||||
* Connect to the notes window through a postmessage handshake.
|
||||
* Using postmessage enables us to work in situations where the
|
||||
* origins differ, such as a presentation being opened from the
|
||||
* file system.
|
||||
*/
|
||||
function connect() {
|
||||
// Keep trying to connect until we get a 'connected' message back
|
||||
let connectInterval = setInterval( function() {
|
||||
popup.postMessage( JSON.stringify( {
|
||||
namespace: 'reveal-notes',
|
||||
type: 'connect',
|
||||
url: window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search,
|
||||
state: deck.getState()
|
||||
} ), '*' );
|
||||
}, 500 );
|
||||
}
|
||||
|
||||
window.addEventListener( 'message', function( event ) {
|
||||
let data = JSON.parse( event.data );
|
||||
if( data && data.namespace === 'reveal-notes' && data.type === 'connected' ) {
|
||||
clearInterval( connectInterval );
|
||||
onConnected();
|
||||
}
|
||||
if( data && data.namespace === 'reveal-notes' && data.type === 'call' ) {
|
||||
callRevealApi( data.methodName, data.arguments, data.callId );
|
||||
}
|
||||
} );
|
||||
/**
|
||||
* Reconnect with an existing speaker view window.
|
||||
*/
|
||||
function reconnectSpeakerWindow( reconnectWindow ) {
|
||||
|
||||
if( speakerWindow && !speakerWindow.closed ) {
|
||||
speakerWindow.focus();
|
||||
}
|
||||
else {
|
||||
speakerWindow = reconnectWindow;
|
||||
window.addEventListener( 'message', onPostMessage );
|
||||
onConnected();
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls the specified Reveal.js method with the provided argument
|
||||
* and then pushes the result to the notes frame.
|
||||
*/
|
||||
function callRevealApi( methodName, methodArguments, callId ) {
|
||||
}
|
||||
|
||||
let result = deck[methodName].apply( deck, methodArguments );
|
||||
popup.postMessage( JSON.stringify( {
|
||||
/**
|
||||
* Connect to the notes window through a postmessage handshake.
|
||||
* Using postmessage enables us to work in situations where the
|
||||
* origins differ, such as a presentation being opened from the
|
||||
* file system.
|
||||
*/
|
||||
function connect() {
|
||||
|
||||
const presentationURL = deck.getConfig().url;
|
||||
|
||||
const url = typeof presentationURL === 'string' ? presentationURL :
|
||||
window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
|
||||
|
||||
// Keep trying to connect until we get a 'connected' message back
|
||||
connectInterval = setInterval( function() {
|
||||
speakerWindow.postMessage( JSON.stringify( {
|
||||
namespace: 'reveal-notes',
|
||||
type: 'return',
|
||||
result: result,
|
||||
callId: callId
|
||||
type: 'connect',
|
||||
state: deck.getState(),
|
||||
url
|
||||
} ), '*' );
|
||||
}, 500 );
|
||||
|
||||
window.addEventListener( 'message', onPostMessage );
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls the specified Reveal.js method with the provided argument
|
||||
* and then pushes the result to the notes frame.
|
||||
*/
|
||||
function callRevealApi( methodName, methodArguments, callId ) {
|
||||
|
||||
let result = deck[methodName].apply( deck, methodArguments );
|
||||
speakerWindow.postMessage( JSON.stringify( {
|
||||
namespace: 'reveal-notes',
|
||||
type: 'return',
|
||||
result,
|
||||
callId
|
||||
} ), '*' );
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Posts the current slide data to the notes window.
|
||||
*/
|
||||
function post( event ) {
|
||||
|
||||
let slideElement = deck.getCurrentSlide(),
|
||||
notesElement = slideElement.querySelector( 'aside.notes' ),
|
||||
fragmentElement = slideElement.querySelector( '.current-fragment' );
|
||||
|
||||
let messageData = {
|
||||
namespace: 'reveal-notes',
|
||||
type: 'state',
|
||||
notes: '',
|
||||
markdown: false,
|
||||
whitespace: 'normal',
|
||||
state: deck.getState()
|
||||
};
|
||||
|
||||
// Look for notes defined in a slide attribute
|
||||
if( slideElement.hasAttribute( 'data-notes' ) ) {
|
||||
messageData.notes = slideElement.getAttribute( 'data-notes' );
|
||||
messageData.whitespace = 'pre-wrap';
|
||||
}
|
||||
|
||||
/**
|
||||
* Posts the current slide data to the notes window
|
||||
*/
|
||||
function post( event ) {
|
||||
|
||||
let slideElement = deck.getCurrentSlide(),
|
||||
notesElement = slideElement.querySelector( 'aside.notes' ),
|
||||
fragmentElement = slideElement.querySelector( '.current-fragment' );
|
||||
|
||||
let messageData = {
|
||||
namespace: 'reveal-notes',
|
||||
type: 'state',
|
||||
notes: '',
|
||||
markdown: false,
|
||||
whitespace: 'normal',
|
||||
state: deck.getState()
|
||||
};
|
||||
|
||||
// Look for notes defined in a slide attribute
|
||||
if( slideElement.hasAttribute( 'data-notes' ) ) {
|
||||
messageData.notes = slideElement.getAttribute( 'data-notes' );
|
||||
// Look for notes defined in a fragment
|
||||
if( fragmentElement ) {
|
||||
let fragmentNotes = fragmentElement.querySelector( 'aside.notes' );
|
||||
if( fragmentNotes ) {
|
||||
notesElement = fragmentNotes;
|
||||
}
|
||||
else if( fragmentElement.hasAttribute( 'data-notes' ) ) {
|
||||
messageData.notes = fragmentElement.getAttribute( 'data-notes' );
|
||||
messageData.whitespace = 'pre-wrap';
|
||||
|
||||
// In case there are slide notes
|
||||
notesElement = null;
|
||||
}
|
||||
|
||||
// Look for notes defined in a fragment
|
||||
if( fragmentElement ) {
|
||||
let fragmentNotes = fragmentElement.querySelector( 'aside.notes' );
|
||||
if( fragmentNotes ) {
|
||||
notesElement = fragmentNotes;
|
||||
}
|
||||
else if( fragmentElement.hasAttribute( 'data-notes' ) ) {
|
||||
messageData.notes = fragmentElement.getAttribute( 'data-notes' );
|
||||
messageData.whitespace = 'pre-wrap';
|
||||
|
||||
// In case there are slide notes
|
||||
notesElement = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Look for notes defined in an aside element
|
||||
if( notesElement ) {
|
||||
messageData.notes = notesElement.innerHTML;
|
||||
messageData.markdown = typeof notesElement.getAttribute( 'data-markdown' ) === 'string';
|
||||
}
|
||||
|
||||
popup.postMessage( JSON.stringify( messageData ), '*' );
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Called once we have established a connection to the notes
|
||||
* window.
|
||||
*/
|
||||
function onConnected() {
|
||||
|
||||
// Monitor events that trigger a change in state
|
||||
deck.on( 'slidechanged', post );
|
||||
deck.on( 'fragmentshown', post );
|
||||
deck.on( 'fragmenthidden', post );
|
||||
deck.on( 'overviewhidden', post );
|
||||
deck.on( 'overviewshown', post );
|
||||
deck.on( 'paused', post );
|
||||
deck.on( 'resumed', post );
|
||||
|
||||
// Post the initial state
|
||||
post();
|
||||
|
||||
// Look for notes defined in an aside element
|
||||
if( notesElement ) {
|
||||
messageData.notes = notesElement.innerHTML;
|
||||
messageData.markdown = typeof notesElement.getAttribute( 'data-markdown' ) === 'string';
|
||||
}
|
||||
|
||||
connect();
|
||||
speakerWindow.postMessage( JSON.stringify( messageData ), '*' );
|
||||
|
||||
}
|
||||
|
||||
function onPostMessage( event ) {
|
||||
|
||||
let data = JSON.parse( event.data );
|
||||
if( data && data.namespace === 'reveal-notes' && data.type === 'connected' ) {
|
||||
clearInterval( connectInterval );
|
||||
onConnected();
|
||||
}
|
||||
else if( data && data.namespace === 'reveal-notes' && data.type === 'call' ) {
|
||||
callRevealApi( data.methodName, data.arguments, data.callId );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Called once we have established a connection to the notes
|
||||
* window.
|
||||
*/
|
||||
function onConnected() {
|
||||
|
||||
// Monitor events that trigger a change in state
|
||||
deck.on( 'slidechanged', post );
|
||||
deck.on( 'fragmentshown', post );
|
||||
deck.on( 'fragmenthidden', post );
|
||||
deck.on( 'overviewhidden', post );
|
||||
deck.on( 'overviewshown', post );
|
||||
deck.on( 'paused', post );
|
||||
deck.on( 'resumed', post );
|
||||
|
||||
// Post the initial state
|
||||
post();
|
||||
|
||||
}
|
||||
|
||||
@@ -164,19 +195,40 @@ const Plugin = () => {
|
||||
|
||||
// If the there's a 'notes' query set, open directly
|
||||
if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) {
|
||||
openNotes();
|
||||
openSpeakerWindow();
|
||||
}
|
||||
else {
|
||||
// Keep listening for speaker view hearbeats. If we receive a
|
||||
// heartbeat from an orphaned window, reconnect it. This ensures
|
||||
// that we remain connected to the notes even if the presentation
|
||||
// is reloaded.
|
||||
window.addEventListener( 'message', event => {
|
||||
|
||||
if( !speakerWindow && typeof event.data === 'string' ) {
|
||||
let data;
|
||||
|
||||
try {
|
||||
data = JSON.parse( event.data );
|
||||
}
|
||||
catch( error ) {}
|
||||
|
||||
if( data && data.namespace === 'reveal-notes' && data.type === 'heartbeat' ) {
|
||||
reconnectSpeakerWindow( event.source );
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Open the notes when the 's' key is hit
|
||||
deck.addKeyBinding({keyCode: 83, key: 'S', description: 'Speaker notes view'}, function() {
|
||||
openNotes();
|
||||
openSpeakerWindow();
|
||||
} );
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
open: openNotes
|
||||
open: openSpeakerWindow
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
<!--
|
||||
NOTE: You need to build the notes plugin after making changes to this file.
|
||||
-->
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
@@ -347,7 +350,8 @@
|
||||
layoutDropdown,
|
||||
pendingCalls = {},
|
||||
lastRevealApiCallId = 0,
|
||||
connected = false;
|
||||
connected = false,
|
||||
whitelistedWindows = [window.opener];
|
||||
|
||||
var SPEAKER_LAYOUTS = {
|
||||
'default': 'Default',
|
||||
@@ -362,9 +366,14 @@
|
||||
var connectionTimeout = setTimeout( function() {
|
||||
connectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.';
|
||||
}, 5000 );
|
||||
|
||||
;
|
||||
window.addEventListener( 'message', function( event ) {
|
||||
|
||||
// Validate the origin of this message to prevent XSS
|
||||
if( window.location.origin !== event.origin && whitelistedWindows.indexOf( event.source ) === -1 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
clearTimeout( connectionTimeout );
|
||||
connectionStatus.style.display = 'none';
|
||||
|
||||
@@ -395,13 +404,21 @@
|
||||
}
|
||||
else if( /slidechanged|fragmentshown|fragmenthidden|paused|resumed/.test( data.eventName ) && currentState !== JSON.stringify( data.state ) ) {
|
||||
|
||||
window.opener.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ]} ), '*' );
|
||||
dispatchStateToMainWindow( data.state );
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
} );
|
||||
|
||||
/**
|
||||
* Updates the presentation in the main window to match the state
|
||||
* of the presentation in the notes window.
|
||||
*/
|
||||
const dispatchStateToMainWindow = debounce(( state ) => {
|
||||
window.opener.postMessage( JSON.stringify({ method: 'setState', args: [ state ]} ), '*' );
|
||||
}, 500);
|
||||
|
||||
/**
|
||||
* Asynchronously calls the Reveal.js API of the main frame.
|
||||
*/
|
||||
@@ -432,6 +449,7 @@
|
||||
setupKeyboard();
|
||||
setupNotes();
|
||||
setupTimer();
|
||||
setupHeartbeat();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -521,6 +539,8 @@
|
||||
upcomingSlide.setAttribute( 'src', upcomingURL );
|
||||
document.querySelector( '#upcoming-slide' ).appendChild( upcomingSlide );
|
||||
|
||||
whitelistedWindows.push( currentSlide.contentWindow, upcomingSlide.contentWindow );
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -533,6 +553,18 @@
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* We send out a heartbeat at all times to ensure we can
|
||||
* reconnect with the main presentation window after reloads.
|
||||
*/
|
||||
function setupHeartbeat() {
|
||||
|
||||
setInterval( () => {
|
||||
window.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'heartbeat'} ), '*' );
|
||||
}, 1000 );
|
||||
|
||||
}
|
||||
|
||||
function getTimings( callback ) {
|
||||
|
||||
callRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) {
|
||||
|
||||
1
.obsidian/plugins/obsidian-advanced-slides/plugin/reveal-pointer/pointer.css
vendored
Normal file
1
.obsidian/plugins/obsidian-advanced-slides/plugin/reveal-pointer/pointer.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.cursor-dot,.cursor-dot-outline{pointer-events:none;position:absolute;top:0;left:0;border-radius:50%;opacity:0;transform:translate(-50%,-50%);transition:opacity 0.3s ease-in-out,transform 0.3s ease-in-out;}.cursor-dot{width:12px;height:12px;background-color:red;z-index:1;}.no-cursor{cursor:none;}.no-cursor a,.no-cursor div,.no-cursor span{cursor:none;}
|
||||
1
.obsidian/plugins/obsidian-advanced-slides/plugin/reveal-pointer/pointer.js
vendored
Normal file
1
.obsidian/plugins/obsidian-advanced-slides/plugin/reveal-pointer/pointer.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
var RevealPointer=function(){"use strict";var e={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,pausebreak:19,capslock:20,esc:27,space:32,pageup:33,pagedown:34,end:35,home:36,leftarrow:37,uparrow:38,rightarrow:39,downarrow:40,insert:45,delete:46,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,a:65,b:66,c:67,d:68,e:69,f:70,g:71,h:72,i:73,j:74,k:75,l:76,m:77,n:78,o:79,p:80,q:81,r:82,s:83,t:84,u:85,v:86,w:87,x:88,y:89,z:90,leftwindowkey:91,rightwindowkey:92,selectkey:93,numpad0:96,numpad1:97,numpad2:98,numpad3:99,numpad4:100,numpad5:101,numpad6:102,numpad7:103,numpad8:104,numpad9:105,multiply:106,add:107,subtract:109,decimalpoint:110,divide:111,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,numlock:144,scrolllock:145,semicolon:186,equalsign:187,comma:188,dash:189,period:190,forwardslash:191,graveaccent:192,openbracket:219,backslash:220,closebracket:221,singlequote:222};return function(){var t={},o=!1,n=null,a={x:0,y:0,isVisible:!1},i={x:0,y:0,scale:1};function l(o){var n;null==(t=o.pointer||{}).key?t.key="q":t.key=t.key.toLowerCase(),null!=t.pointerSize&&"number"==typeof t.pointerSize||(t.pointerSize=12),null!=t.tailLength&&"number"==typeof t.tailLength||(t.tailLength=10),null!=t.color&&"string"==typeof t.color||(t.color="red"),null!=t.alwaysVisible&&"boolean"==typeof t.alwaysVisible||(t.alwaysVisible=!1),null!=t.opacity&&"number"==typeof t.opacity||(t.opacity=.8),t.keyCode=(n=t.key,e[n])}function r(){n.style.top="".concat((a.y-i.y)/i.scale,"px"),n.style.left="".concat((a.x-i.x)/i.scale,"px"),a.isVisible?n.style.opacity=t.opacity.toString():n.style.opacity="0",1!==i.scale?(n.style.width="".concat(t.pointerSize/i.scale,"px"),n.style.height="".concat(t.pointerSize/i.scale,"px")):(n.style.width="".concat(t.pointerSize,"px"),n.style.height="".concat(t.pointerSize,"px"))}function c(e){a.x=e.pageX,a.y=e.pageY;var t=document.body.style.transform;""!==t?(i.x=Number.parseInt(/translate\((.*)px,/gm.exec(t)[1]),i.y=Number.parseInt(/px,\s(.*)px\)/gm.exec(t)[1]),i.scale=Number.parseFloat(/scale\((.)\)/gm.exec(t)[1])):(i.x=0,i.y=0,i.scale=1),requestAnimationFrame(r)}function s(){(o=!o)?(document.addEventListener("mousemove",c),document.body.classList.add("no-cursor"),a.isVisible=!0):(document.removeEventListener("mousemove",c),document.body.classList.remove("no-cursor"),a.isVisible=!1,requestAnimationFrame(r))}return{id:"pointer",init:function(e){var o;l(e.getConfig()),t.alwaysVisible?s():e.addKeyBinding({keyCode:t.keyCode,key:t.key},(function(){s()})),e.on("pointerColorChange",(function(e){var o;o=e.color,null!=n&&(n.style.backgroundColor=null!=o?o:t.color)})),(o=document.createElement("div")).className="cursor-dot",o.style.width="".concat(t.pointerSize,"px"),o.style.height="".concat(t.pointerSize,"px"),o.style.backgroundColor=t.color,t.alwaysVisible&&(o.style.opacity="0.8"),document.body.appendChild(o),n=o}}}}();
|
||||
@@ -25,6 +25,12 @@ const Plugin = {
|
||||
}
|
||||
} );
|
||||
|
||||
},
|
||||
|
||||
destroy: () => {
|
||||
|
||||
zoom.reset();
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
@@ -52,19 +58,11 @@ var zoom = (function(){
|
||||
panUpdateInterval = -1;
|
||||
|
||||
// Check for transform support so that we can fallback otherwise
|
||||
var supportsTransforms = 'WebkitTransform' in document.body.style ||
|
||||
'MozTransform' in document.body.style ||
|
||||
'msTransform' in document.body.style ||
|
||||
'OTransform' in document.body.style ||
|
||||
'transform' in document.body.style;
|
||||
var supportsTransforms = 'transform' in document.body.style;
|
||||
|
||||
if( supportsTransforms ) {
|
||||
// The easing that will be applied when we zoom in/out
|
||||
document.body.style.transition = 'transform 0.8s ease';
|
||||
document.body.style.OTransition = '-o-transform 0.8s ease';
|
||||
document.body.style.msTransition = '-ms-transform 0.8s ease';
|
||||
document.body.style.MozTransition = '-moz-transform 0.8s ease';
|
||||
document.body.style.WebkitTransition = '-webkit-transform 0.8s ease';
|
||||
}
|
||||
|
||||
// Zoom out if the user hits escape
|
||||
@@ -105,10 +103,6 @@ var zoom = (function(){
|
||||
// Reset
|
||||
if( scale === 1 ) {
|
||||
document.body.style.transform = '';
|
||||
document.body.style.OTransform = '';
|
||||
document.body.style.msTransform = '';
|
||||
document.body.style.MozTransform = '';
|
||||
document.body.style.WebkitTransform = '';
|
||||
}
|
||||
// Scale
|
||||
else {
|
||||
@@ -116,16 +110,7 @@ var zoom = (function(){
|
||||
transform = 'translate('+ -rect.x +'px,'+ -rect.y +'px) scale('+ scale +')';
|
||||
|
||||
document.body.style.transformOrigin = origin;
|
||||
document.body.style.OTransformOrigin = origin;
|
||||
document.body.style.msTransformOrigin = origin;
|
||||
document.body.style.MozTransformOrigin = origin;
|
||||
document.body.style.WebkitTransformOrigin = origin;
|
||||
|
||||
document.body.style.transform = transform;
|
||||
document.body.style.OTransform = transform;
|
||||
document.body.style.msTransform = transform;
|
||||
document.body.style.MozTransform = transform;
|
||||
document.body.style.WebkitTransform = transform;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*!
|
||||
* reveal.js Zoom plugin
|
||||
*/
|
||||
var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(o){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;o[i]&&!e.isOverview()&&(o.preventDefault(),t.to({x:o.clientX,y:o.clientY,scale:d,pan:!1}))}))}},t=function(){var e=1,o=0,n=0,i=-1,d=-1,s="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style;function r(t,o){var n=y();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*o)/2,t.y-=(window.innerHeight-t.height*o)/2,s)if(1===o)document.body.style.transform="",document.body.style.OTransform="",document.body.style.msTransform="",document.body.style.MozTransform="",document.body.style.WebkitTransform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+o+")";document.body.style.transformOrigin=i,document.body.style.OTransformOrigin=i,document.body.style.msTransformOrigin=i,document.body.style.MozTransformOrigin=i,document.body.style.WebkitTransformOrigin=i,document.body.style.transform=d,document.body.style.OTransform=d,document.body.style.msTransform=d,document.body.style.MozTransform=d,document.body.style.WebkitTransform=d}else 1===o?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+t.x)/o+"px",document.body.style.top=-(n.y+t.y)/o+"px",document.body.style.width=100*o+"%",document.body.style.height=100*o+"%",document.body.style.zoom=o);e=o,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function m(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=y();n<i?window.scroll(d.x,d.y-14/e*(1-n/i)):n>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),o<t?window.scroll(d.x-14/e*(1-o/t),d.y):o>window.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-o)/t)*(14/e),d.y)}function y(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return s&&(document.body.style.transition="transform 0.8s ease",document.body.style.OTransition="-o-transform 0.8s ease",document.body.style.msTransition="-ms-transform 0.8s ease",document.body.style.MozTransition="-moz-transform 0.8s ease",document.body.style.WebkitTransition="-webkit-transform 0.8s ease"),document.addEventListener("keyup",(function(o){1!==e&&27===o.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(o=t.clientX,n=t.clientY)})),{to:function(o){if(1!==e)t.out();else{if(o.x=o.x||0,o.y=o.y||0,o.element){var n=o.element.getBoundingClientRect();o.x=n.left-20,o.y=n.top-20,o.width=n.width+40,o.height=n.height+40}void 0!==o.width&&void 0!==o.height&&(o.scale=Math.max(Math.min(window.innerWidth/o.width,window.innerHeight/o.height),1)),o.scale>1&&(o.x*=o.scale,o.y*=o.scale,r(o,o.scale),!1!==o.pan&&(i=setTimeout((function(){d=setInterval(m,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),r({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();export default function(){return e}
|
||||
var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(n){var o=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:o)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;n[i]&&!e.isOverview()&&(n.preventDefault(),t.to({x:n.clientX,y:n.clientY,scale:d,pan:!1}))}))},destroy:function(){t.reset()}},t=function(){var e=1,n=0,o=0,i=-1,d=-1,l="transform"in document.body.style;function s(t,n){var o=r();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*n)/2,t.y-=(window.innerHeight-t.height*n)/2,l)if(1===n)document.body.style.transform="";else{var i=o.x+"px "+o.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+n+")";document.body.style.transformOrigin=i,document.body.style.transform=d}else 1===n?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(o.x+t.x)/n+"px",document.body.style.top=-(o.y+t.y)/n+"px",document.body.style.width=100*n+"%",document.body.style.height=100*n+"%",document.body.style.zoom=n);e=n,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function c(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=r();o<i?window.scroll(d.x,d.y-14/e*(1-o/i)):o>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-o)/i)*(14/e)),n<t?window.scroll(d.x-14/e*(1-n/t),d.y):n>window.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-n)/t)*(14/e),d.y)}function r(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return l&&(document.body.style.transition="transform 0.8s ease"),document.addEventListener("keyup",(function(n){1!==e&&27===n.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(n=t.clientX,o=t.clientY)})),{to:function(n){if(1!==e)t.out();else{if(n.x=n.x||0,n.y=n.y||0,n.element){var o=n.element.getBoundingClientRect();n.x=o.left-20,n.y=o.top-20,n.width=o.width+40,n.height=o.height+40}void 0!==n.width&&void 0!==n.height&&(n.scale=Math.max(Math.min(window.innerWidth/n.width,window.innerHeight/n.height),1)),n.scale>1&&(n.x*=n.scale,n.y*=n.scale,s(n,n.scale),!1!==n.pan&&(i=setTimeout((function(){d=setInterval(c,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),s({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();export default function(){return e}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealZoom=o()}(this,(function(){"use strict";
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealZoom=t()}(this,(function(){"use strict";
|
||||
/*!
|
||||
* reveal.js Zoom plugin
|
||||
*/var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(t){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;t[i]&&!e.isOverview()&&(t.preventDefault(),o.to({x:t.clientX,y:t.clientY,scale:d,pan:!1}))}))}},o=function(){var e=1,t=0,n=0,i=-1,d=-1,s="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style;function r(o,t){var n=l();if(o.width=o.width||1,o.height=o.height||1,o.x-=(window.innerWidth-o.width*t)/2,o.y-=(window.innerHeight-o.height*t)/2,s)if(1===t)document.body.style.transform="",document.body.style.OTransform="",document.body.style.msTransform="",document.body.style.MozTransform="",document.body.style.WebkitTransform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-o.x+"px,"+-o.y+"px) scale("+t+")";document.body.style.transformOrigin=i,document.body.style.OTransformOrigin=i,document.body.style.msTransformOrigin=i,document.body.style.MozTransformOrigin=i,document.body.style.WebkitTransformOrigin=i,document.body.style.transform=d,document.body.style.OTransform=d,document.body.style.msTransform=d,document.body.style.MozTransform=d,document.body.style.WebkitTransform=d}else 1===t?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+o.x)/t+"px",document.body.style.top=-(n.y+o.y)/t+"px",document.body.style.width=100*t+"%",document.body.style.height=100*t+"%",document.body.style.zoom=t);e=t,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function m(){var o=.12*window.innerWidth,i=.12*window.innerHeight,d=l();n<i?window.scroll(d.x,d.y-14/e*(1-n/i)):n>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),t<o?window.scroll(d.x-14/e*(1-t/o),d.y):t>window.innerWidth-o&&window.scroll(d.x+(1-(window.innerWidth-t)/o)*(14/e),d.y)}function l(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return s&&(document.body.style.transition="transform 0.8s ease",document.body.style.OTransition="-o-transform 0.8s ease",document.body.style.msTransition="-ms-transform 0.8s ease",document.body.style.MozTransition="-moz-transform 0.8s ease",document.body.style.WebkitTransition="-webkit-transform 0.8s ease"),document.addEventListener("keyup",(function(t){1!==e&&27===t.keyCode&&o.out()})),document.addEventListener("mousemove",(function(o){1!==e&&(t=o.clientX,n=o.clientY)})),{to:function(t){if(1!==e)o.out();else{if(t.x=t.x||0,t.y=t.y||0,t.element){var n=t.element.getBoundingClientRect();t.x=n.left-20,t.y=n.top-20,t.width=n.width+40,t.height=n.height+40}void 0!==t.width&&void 0!==t.height&&(t.scale=Math.max(Math.min(window.innerWidth/t.width,window.innerHeight/t.height),1)),t.scale>1&&(t.x*=t.scale,t.y*=t.scale,r(t,t.scale),!1!==t.pan&&(i=setTimeout((function(){d=setInterval(m,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),r({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();return function(){return e}}));
|
||||
*/var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(o){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;o[i]&&!e.isOverview()&&(o.preventDefault(),t.to({x:o.clientX,y:o.clientY,scale:d,pan:!1}))}))},destroy:function(){t.reset()}},t=function(){var e=1,o=0,n=0,i=-1,d=-1,l="transform"in document.body.style;function s(t,o){var n=r();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*o)/2,t.y-=(window.innerHeight-t.height*o)/2,l)if(1===o)document.body.style.transform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+o+")";document.body.style.transformOrigin=i,document.body.style.transform=d}else 1===o?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+t.x)/o+"px",document.body.style.top=-(n.y+t.y)/o+"px",document.body.style.width=100*o+"%",document.body.style.height=100*o+"%",document.body.style.zoom=o);e=o,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function c(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=r();n<i?window.scroll(d.x,d.y-14/e*(1-n/i)):n>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),o<t?window.scroll(d.x-14/e*(1-o/t),d.y):o>window.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-o)/t)*(14/e),d.y)}function r(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return l&&(document.body.style.transition="transform 0.8s ease"),document.addEventListener("keyup",(function(o){1!==e&&27===o.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(o=t.clientX,n=t.clientY)})),{to:function(o){if(1!==e)t.out();else{if(o.x=o.x||0,o.y=o.y||0,o.element){var n=o.element.getBoundingClientRect();o.x=n.left-20,o.y=n.top-20,o.width=n.width+40,o.height=n.height+40}void 0!==o.width&&void 0!==o.height&&(o.scale=Math.max(Math.min(window.innerWidth/o.width,window.innerHeight/o.height),1)),o.scale>1&&(o.x*=o.scale,o.y*=o.scale,s(o,o.scale),!1!==o.pan&&(i=setTimeout((function(){d=setInterval(c,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),s({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();return function(){return e}}));
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
<link rel="stylesheet" href="{{{base}}}plugin/chalkboard/style.css">
|
||||
{{/enableChalkboard}}
|
||||
|
||||
{{#enablePointer}}
|
||||
<link rel="stylesheet" href="{{{base}}}plugin/reveal-pointer/pointer.css" />
|
||||
{{/enablePointer}}
|
||||
|
||||
{{#cssPaths}}
|
||||
<link rel="stylesheet" href="{{{base}}}{{{.}}}" />
|
||||
{{/cssPaths}}
|
||||
@@ -113,6 +117,14 @@
|
||||
{{#enableChalkboard}}
|
||||
<script src="{{{base}}}plugin/chalkboard/plugin.js"></script>
|
||||
{{/enableChalkboard}}
|
||||
{{#enablePointer}}
|
||||
<script src="{{{base}}}plugin/reveal-pointer/pointer.js"></script>
|
||||
{{/enablePointer}}
|
||||
{{#timeForPresentation}}
|
||||
{{#enableTimeBar}}
|
||||
<script src="{{{base}}}plugin/elapsed-time-bar/elapsed-time-bar.js"></script>
|
||||
{{/enableTimeBar}}
|
||||
{{/timeForPresentation}}
|
||||
|
||||
<script>
|
||||
function extend() {
|
||||
@@ -144,8 +156,9 @@
|
||||
}
|
||||
|
||||
var bgColor = getComputedStyle(document.documentElement).getPropertyValue('--r-background-color').trim();
|
||||
var isLight = isLight(bgColor);
|
||||
|
||||
if(isLight(bgColor)){
|
||||
if(isLight){
|
||||
document.body.classList.add('has-light-background');
|
||||
} else {
|
||||
document.body.classList.add('has-dark-background');
|
||||
@@ -172,14 +185,38 @@
|
||||
{{#enableMenu}}
|
||||
RevealMenu,
|
||||
{{/enableMenu}}
|
||||
{{#enablePointer}}
|
||||
RevealPointer,
|
||||
{{/enablePointer}}
|
||||
{{#enableChalkboard}}
|
||||
RevealChalkboard,
|
||||
{{/enableChalkboard}}
|
||||
{{#timeForPresentation}}
|
||||
{{#enableTimeBar}}
|
||||
ElapsedTimeBar
|
||||
{{/enableTimeBar}}
|
||||
{{/timeForPresentation}}
|
||||
],
|
||||
|
||||
|
||||
{{#timeForPresentation}}
|
||||
allottedTime: {{{.}}} * 1000,
|
||||
{{/timeForPresentation}}
|
||||
|
||||
mathjax3: {
|
||||
mathjax: '{{{base}}}plugin/math/mathjax/tex-mml-chtml.js',
|
||||
},
|
||||
markdown: {
|
||||
gfm: true,
|
||||
mangle: true,
|
||||
pedantic: false,
|
||||
smartLists: false,
|
||||
smartypants: false,
|
||||
},
|
||||
|
||||
mermaid: {
|
||||
theme: isLight ? 'default' : 'dark',
|
||||
},
|
||||
|
||||
{{#enableCustomControls}}
|
||||
customcontrols: {
|
||||
@@ -221,4 +258,6 @@
|
||||
Reveal.initialize(options);
|
||||
</script>
|
||||
</body>
|
||||
|
||||
<!-- created with {{! ignore me }}Advanced Slides -->
|
||||
</html>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -5,7 +5,7 @@
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Ma bibliothèque",
|
||||
"lastUpdate": 1774723941998
|
||||
"lastUpdate": 1774813426972
|
||||
}
|
||||
],
|
||||
"renderCitations": true,
|
||||
|
||||
@@ -1,15 +1,76 @@
|
||||
---
|
||||
center: true
|
||||
transition: slide
|
||||
---
|
||||
|
||||
|
||||
# Définition
|
||||
|
||||
|
||||
![[désintégration audioactive#^definition]]
|
||||
|
||||
|
||||
|
||||
---
|
||||
# Exemples
|
||||
|
||||
$1 \longrightarrow \text{un } 1$
|
||||
. . .
|
||||
$11 \longrightarrow \text{deux }1$
|
||||
. . .
|
||||
$21 \longrightarrow \text{un }2,\quad \text{un }1$
|
||||
. . .
|
||||
$1211 \longrightarrow \text{un }1,\quad \text{un }2,\quad \text{deux } 1$
|
||||
. . .
|
||||
--
|
||||
## Exemple 1
|
||||
|
||||
+ $1 \longrightarrow \text{un } 1$
|
||||
+ $11 \longrightarrow \text{deux }1$
|
||||
+ $21 \longrightarrow \text{un }2,\quad \text{un }1$
|
||||
+ $1211 \longrightarrow \text{un }1,\quad \text{un }2,\quad \text{deux }2$
|
||||
+ $\underparen{111\!}\,221 \longrightarrow \text{trois }1,\quad \text{deux }2,\quad \text{un} 1$
|
||||
+ $312211$
|
||||
+ $13112221$
|
||||
+ $1113213211$
|
||||
|
||||
--
|
||||
## Exemple 2
|
||||
|
||||
$22 \longrightarrow \text{deux} 2$ <!-- element class="fragment" -->
|
||||
|
||||
$22$ <!-- element class="fragment" -->
|
||||
|
||||
$22$ <!-- element class="fragment" -->
|
||||
|
||||
$\vdots$ <!-- element class="fragment" -->
|
||||
|
||||
|
||||
---
|
||||
# Notations
|
||||
|
||||
+ $12 \longrightarrow 1112$
|
||||
+ $,11,12,$
|
||||
+ $[11$ et $12]$
|
||||
+ $1^{3}2^{1}$
|
||||
+ $1^{\geq 2}(\neq 1)^{3}$
|
||||
+ $[1^{3}X^{1 \text{ ou } 2}$
|
||||
|
||||
---
|
||||
# Propriétés
|
||||
|
||||
--
|
||||
## Première propriété évidente
|
||||
|
||||
Pour une étape : $a^{\alpha}b^{\beta}c^{\gamma}d^{\delta}\cdots \longrightarrow \alpha a\beta b\gamma c\delta d\cdots$
|
||||
|
||||
Il est évident que : $a\neq b,\quad b\neq c,\quad c\neq d,\dots$
|
||||
|
||||
--
|
||||
## Théorème du jour 1
|
||||
|
||||
Les morceaux de type :
|
||||
+ $,ax,bx,$ <span class="fragment"> devrait être dérivé en $(a+b)x$ </span>
|
||||
+ $x^{\geq 4}$ <span class="fragment"> $=\begin{cases}x,xx,x\cdots \\ ,xx,xx, \cdots\end{cases}$ impossible </span>
|
||||
+ $x^{3}y^{3}$ <span class="fragment"> $=\begin{cases},xx,xy,yy, \text{ un cas de } ,ay,by, \\ x,xx,xy,y \text{ un cas de } ,ax,bx,\end{cases}$ </span>
|
||||
|
||||
n'apparaîssent plus après 1 jour.
|
||||
|
||||
--
|
||||
## Théorème du jour 2
|
||||
|
||||
Après 2 jours, on ne peut plus avoir :
|
||||
+ apparition d'un $\geq 4$ <span class="fragment">car $x^4$ impossible (thm. J1)</span>
|
||||
+ $3X3$ <span class="fragment"> $=\begin{cases},3X,3y \longleftarrow X^3y^3 {\,\color{red}\times } \text{ (thm. J1)} \\ 3,X3, \text{ impossible (thm. J1)}\end{cases}$ </span>
|
||||
@@ -43,13 +43,13 @@ header-auto-numbering:
|
||||
|
||||
# Propriétés
|
||||
|
||||
> [!proposition]+
|
||||
> [!proposition]+ conséquence du regroupement
|
||||
> Pour une étape :
|
||||
> $a^{\alpha}b^{\beta}c^{\gamma}d^{\delta}\cdots \longrightarrow \alpha a\beta b\gamma c\delta d\cdots$
|
||||
> Il est évident que :
|
||||
> $a\neq b,\quad b\neq c,\quad c\neq d,\dots$
|
||||
> - dem Cela découle directement du fait que l'on choisit, à chaque fois, les plus grands $\alpha, \beta, \gamma, \delta\dots$ possibles
|
||||
|
||||
^regroupement
|
||||
## Atomes
|
||||
|
||||
> [!definition] Découpage
|
||||
|
||||
Reference in New Issue
Block a user