Предполагая, что вам не нужен оконный хром, вы можете сделать это, убрав рамку вокруг Electron и заполнив остальные html / css / js. Я написал статью о том, что вы ищете, в моем блоге здесь: http://www.mylifeforthecode.com/making-the-electron-shell-as-pretty-as-the-visual-studio-shell / . Код, с которого можно начать, также размещен здесь: https://github.com/srakowski/ElectronLikeVS
Подводя итог, необходимо передать frame: false при создании BrowserWindow:
mainWindow = new BrowserWindow({width: 800, height: 600, frame: false});
Затем создайте и добавьте кнопки управления для строки заголовка:
My Life For The Code
Привязка в функциях max / min / close в js:
(function () {
var remote = require('remote');
var BrowserWindow = remote.require('browser-window');
function init() {
document.getElementById("min-btn").addEventListener("click", function (e) {
var window = BrowserWindow.getFocusedWindow();
window.minimize();
});
document.getElementById("max-btn").addEventListener("click", function (e) {
var window = BrowserWindow.getFocusedWindow();
window.maximize();
});
document.getElementById("close-btn").addEventListener("click", function (e) {
var window = BrowserWindow.getFocusedWindow();
window.close();
});
};
document.onreadystatechange = function () {
if (document.readyState == "complete") {
init();
}
};
})();
Styling окно может быть хитрым, но ключ используют для использования специальных свойств из webkit. Вот некоторые минимальные CSS:
body {
padding: 0px;
margin: 0px;
}
#title-bar {
-webkit-app-region: drag;
height: 24px;
background-color: darkviolet;
padding: none;
margin: 0px;
}
#title {
position: fixed;
top: 0px;
left: 6px;
}
#title-bar-btns {
-webkit-app-region: no-drag;
position: fixed;
top: 0px;
right: 6px;
}
Обратите внимание, что они важны:
-webkit-app-region: drag;
-webkit-app-region: no-drag;
-webkit-app-region: перетаскивание в область «строки заголовка» сделает это так, что Вы можете перетащить его, как это обычно бывает с окнами. Не перетаскивание применяется к кнопкам, чтобы они не вызывали перетаскивания.
Для этого можно использовать обратную ссылку:
(.)\1
Это будет соответствовать последовательным вхождениям любого символа.
Править Вот пример Python:
import re
regexp = re.compile(r"(.)\1")
data = ["parrot","follia","carrot","mattia","rettoo","melone"]
for str in data:
match = re.search(regexp, str)
if match:
print str, "<- match for double", match.group(1)
else:
print str, "<- doesn't match"
В таких случаях необходимо использовать обратные ссылки. Я не уверен, какой язык вы используете, я попробовал следующий пример в моем редакторе VI, чтобы найти любой повторяющийся алфавит.
Шаблон Регулярное выражение: \ ([az] \) \ 1
Если вы видите пример, [az] - это шаблон, который вы ищете, и заключите его в скобки (скобки должны быть экранированы на некоторых языках). Если у вас есть парантез, это группа, и на нее можно снова ссылаться в любом месте регулярного выражения, используя \ 1. Если существует более одной группы, вы можете использовать \ 1, \ 2 и т. Д. \ 1 будет заменен тем, что было найдено в первой группе.
Спасибо Арвинд
Да, вы можете использовать конструкцию обратной ссылки для сопоставления двойных букв.
Регулярное выражение (?
, используя именованные группы и обратная ссылка, поиск смежных парных символов. При применении к строке «Я выпью немного кофе» она находит совпадения в словах «Я», «маленький» и «кофе». Метасимвол \ w
находит любой однословный символ. Конструкция группировки (?
включает в себя метасимвол, чтобы заставить обработчик регулярных выражений запомнить совпадение подвыражения (которое в данном случае будет любым отдельным символом) и сохранить его под именем "char ". Конструкция обратной ссылки \ k
заставляет механизм сравнивать текущий символ с ранее сопоставленным символом, хранящимся в «char». Все регулярное выражение успешно находит совпадение, если единственный символ совпадает с предыдущим.
/ (\ b \ w *? (\ W) \ 2. *? \ B) /
будет соответствовать любому слову с как минимум повторением символа $ 1 - это слово $ 2 за первое повторение.