File-Explorer: EasyMDE Edit-Mode, Font Awesome, Markdown-Preview-Styles
This commit is contained in:
1 parent
92072f5064
commit
5b2e8f4a11
9 files changed
+77
-12
No files matched your search
@@ -31,7 +31,10 @@ Wenn der User auf eine bestimmte Zeile in einer Datei verweist (z.B. `[Datei: fo
|
||||
parts.Add($"## Kontext\n{session.Context}");
|
||||
|
||||
parts.Add(@"## Verhalten
|
||||
Wenn du Tools verwendest oder Aktionen ausführst, tue dies immer tatsächlich über die verfügbaren Tool-Aufrufe. Behaupte niemals, etwas getan zu haben (z.B. eine Datei geschrieben, einen Commit gemacht), ohne das entsprechende Tool tatsächlich aufgerufen zu haben. Wenn kein Tool-Aufruf stattgefunden hat, ist nichts passiert.");
|
||||
- Wenn du Dateien lesen, schreiben, bearbeiten, erstellen oder löschen willst: IMMER das entsprechende Tool aufrufen. NIEMALS den Inhalt nur in die Antwort schreiben.
|
||||
- Wenn du Shell-Befehle ausführen willst: IMMER das execute-Tool verwenden.
|
||||
- Behaupte NIEMALS etwas getan zu haben (Datei geschrieben, Commit gemacht, Befehl ausgeführt) ohne das entsprechende Tool tatsächlich aufgerufen zu haben. Wenn kein Tool-Aufruf stattgefunden hat, ist nichts passiert.
|
||||
- Plane nicht nur - handle sofort über Tool-Aufrufe.");
|
||||
|
||||
return string.Join("\n\n", parts);
|
||||
}
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
.tool-error-badge {
|
||||
color: var(--dangerous);
|
||||
border: var(--border-width) solid var(--dangerous);
|
||||
padding: var(--box-padding);
|
||||
padding: var(--badge-padding);
|
||||
}
|
||||
|
||||
/* Diff View */
|
||||
|
||||
@@ -241,14 +241,54 @@
|
||||
.fe-mde-wrap .cm-url { color: #98c379 !important; }
|
||||
.fe-mde-wrap .cm-quote { color: #5c6370 !important; font-style: italic; }
|
||||
|
||||
/* EasyMDE Toolbar/Statusbar/Preview ausblenden */
|
||||
.fe-mde-wrap .editor-toolbar,
|
||||
.fe-mde-wrap .editor-statusbar,
|
||||
.fe-mde-wrap .editor-preview-side,
|
||||
.fe-mde-wrap .editor-preview-full {
|
||||
/* EasyMDE Toolbar */
|
||||
.fe-mde-wrap .editor-toolbar {
|
||||
background: var(--f1-bg) !important;
|
||||
border-bottom: var(--border-width) solid var(--f1-border) !important;
|
||||
border-top: none !important;
|
||||
padding: 4px !important;
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
.fe-mde-wrap .editor-toolbar button {
|
||||
color: var(--text) !important;
|
||||
border: none !important;
|
||||
border-radius: 3px !important;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.fe-mde-wrap .editor-toolbar button:hover {
|
||||
background: var(--f3-bg) !important;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.fe-mde-wrap .editor-toolbar button.active {
|
||||
background: var(--f3-bg) !important;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.fe-mde-wrap .editor-toolbar i.separator {
|
||||
border-left-color: var(--f1-border) !important;
|
||||
border-right: none !important;
|
||||
}
|
||||
|
||||
/* EasyMDE Statusbar ausblenden */
|
||||
.fe-mde-wrap .editor-statusbar {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* EasyMDE Preview */
|
||||
.fe-mde-wrap .editor-preview,
|
||||
.fe-mde-wrap .editor-preview-side {
|
||||
background: var(--f2-bg) !important;
|
||||
color: var(--text) !important;
|
||||
font-family: var(--font) !important;
|
||||
}
|
||||
|
||||
.fe-mde-wrap .editor-preview-active-side {
|
||||
border-left: var(--border-width) solid var(--f1-border);
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
|
||||
.fe-footer {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>// gott</title>
|
||||
<script src="js/title.js"></script>
|
||||
<link rel="stylesheet" href="lib/font-awesome/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="css/fonts.css">
|
||||
<link rel="stylesheet" href="css/theme.css">
|
||||
<link rel="stylesheet" href="css/base.css">
|
||||
|
||||
@@ -253,7 +253,7 @@ function feInitCodeMirror(container, data, ext) {
|
||||
|
||||
const host = document.getElementById('feCmHost');
|
||||
const mode = getCmMode(ext);
|
||||
const originalContent = data.content;
|
||||
_feState._originalContent = data.content;
|
||||
|
||||
const cm = CodeMirror(host, {
|
||||
value: data.content,
|
||||
@@ -279,7 +279,7 @@ function feInitCodeMirror(container, data, ext) {
|
||||
// Änderungs-Tracking
|
||||
cm.on('change', () => {
|
||||
const saveBtn = document.getElementById('feSaveBtn');
|
||||
if (saveBtn) saveBtn.disabled = cm.getValue() === originalContent;
|
||||
if (saveBtn) saveBtn.disabled = cm.getValue() === _feState._originalContent;
|
||||
});
|
||||
|
||||
// Refresh nötig wenn CM in einem Container ohne finale Größe initialisiert wird
|
||||
@@ -293,28 +293,44 @@ function feInitEasyMDE(container, data) {
|
||||
container.innerHTML = '<div class="fe-mde-wrap"><textarea id="feMdeTextarea"></textarea></div>';
|
||||
|
||||
const textarea = document.getElementById('feMdeTextarea');
|
||||
_feState._originalContent = data.content;
|
||||
|
||||
const mde = new EasyMDE({
|
||||
element: textarea,
|
||||
initialValue: data.content,
|
||||
toolbar: false,
|
||||
toolbar: [
|
||||
'bold', 'italic', 'heading', '|',
|
||||
'quote', 'unordered-list', 'ordered-list', '|',
|
||||
'link', 'image', 'code', '|',
|
||||
'preview', 'side-by-side', '|',
|
||||
'guide'
|
||||
],
|
||||
status: false,
|
||||
autofocus: false,
|
||||
spellChecker: false,
|
||||
autoDownloadFontAwesome: false,
|
||||
previewClass: ['editor-preview', 'markdown'],
|
||||
minHeight: '100%',
|
||||
maxHeight: '100%'
|
||||
});
|
||||
|
||||
// Readonly via CodeMirror-Instanz
|
||||
mde.codemirror.setOption('readOnly', true);
|
||||
mde.codemirror.setOption('theme', 'default');
|
||||
mde.codemirror.setOption('extraKeys', {
|
||||
'Ctrl-S': () => feDoSave(),
|
||||
'Cmd-S': () => feDoSave()
|
||||
});
|
||||
|
||||
mde.codemirror.on('cursorActivity', () => {
|
||||
if (!_feState || !_feState.selectedFile) return;
|
||||
feUpdateSelectionInfo(mde.codemirror, data);
|
||||
});
|
||||
|
||||
// Änderungs-Tracking
|
||||
mde.codemirror.on('change', () => {
|
||||
const saveBtn = document.getElementById('feSaveBtn');
|
||||
if (saveBtn) saveBtn.disabled = mde.value() === _feState._originalContent;
|
||||
});
|
||||
|
||||
_feState._editor = mde;
|
||||
_feState._editorType = 'easymde';
|
||||
}
|
||||
@@ -432,6 +448,7 @@ async function feDoSave() {
|
||||
_feState.selectedFile.content = content;
|
||||
_feState.selectedFile.size = result.size;
|
||||
_feState.selectedFile.lineCount = result.lineCount;
|
||||
_feState._originalContent = content;
|
||||
|
||||
const info = document.getElementById('feInfo');
|
||||
if (info) info.textContent = `${path} — ${result.lineCount} Zeilen, ${formatSize(result.size)}`;
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
/*!
|
||||
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
|
||||
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
|
||||
*/@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f03Line truncated
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in new issue
Block a user