Слияние кода завершено, страница обновится автоматически
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>line nubmers demo</title>
<link rel="alternate stylesheet" title="Default" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/default.min.css">
<link rel="alternate stylesheet" title="Dracula" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/darcula.min.css">
<link rel="stylesheet" title="Ir Black" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/ir-black.min.css">
<link rel="alternate stylesheet" title="Vs" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/vs.min.css">
<style type="text/css">
body {
background: #fff;
}
.container {
width: 650px;
margin: 0 auto;
}
.code-style {
margin-bottom: 50px;
}
.code-style button {
padding: 3px 10px;
border: 1px solid #ccc;
}
.code-style button.current {
background: #3886fe;
border-color: #3886fe;
color: #fff;
}
.code-demo {
margin-bottom: 50px;
}
pre {
position: relative;
}
.hljsln {
display: block;
margin-left: 2.4em;
padding-left: 0.7em !important;
}
.hljsln::-webkit-scrollbar {
height: 15px;
}
.hljsln::-webkit-scrollbar-thumb {
background: #666;
}
.hljsln::-webkit-scrollbar-thumb:hover {
background: #797979;
}
.hljsln::-webkit-scrollbar-thumb:active {
background: #949494;
}
.hljsln .ln-bg {
position: absolute;
z-index: 1;
top: 0;
left: 0;
width: 2.4em;
height: 100%;
background: #333;
}
.hljsln .ln-num {
position: absolute;
z-index: 2;
left: 0;
width: 2.4em;
height: 1em;
text-align: center;
display: inline-block;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.hljsln .ln-num::before {
color: #777;
font-style: normal;
font-weight: normal;
content: attr(data-num);
}
.hljsln .ln-eof {
display: inline-block;
}
</style>
</head>
<body>
<div class="container">
<div class="code-style">
<h2>代码高亮风格</h2>
<button type="button" onclick="switchStyle(this)">Default</button>
<button type="button" onclick="switchStyle(this)">Dracula</button>
<button type="button" onclick="switchStyle(this)" class="current">Ir Black</button>
<button type="button" onclick="switchStyle(this)">Vs</button>
</div>
<div class="code-demo">
<h2>Bash Shell</h2>
<p>单行</p>
<pre><code class="bash">find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f</code></pre>
</div>
<div class="code-demo">
<h2>plaintext</h2>
<p>6 行</p>
<pre><code class="plaintext"> id | description
----+-------------
1 | one
2 | two
3 | three
(3 rows)</code></pre>
</div>
<div class="code-demo">
<h2>C++</h2>
<p>15 行</p>
<pre><code class="cpp">#include <iostream>
int main(int argc, char *argv[]) {
/* An annoying "Hello World" example */
for (auto i = 0; i < 0xFFFF; i++)
cout << "Hello, World!" << endl;
char c = '\n';
unordered_map <string, vector<string> > m;
m["key"] = "\\\\"; // this is an error
return -2e3 + 12l;
}
</code></pre>
</div>
<div class="code-demo">
<h2>JavaScript</h2>
<p>100 行以上<br>代码引自 https://gitee.com/yangrz/phpmyadmin-timestamp-field-format</p>
<pre><code class="javascript">$(function () {
// 只监听标题包含 phpMyAdmin 的页面
if (document.title.indexOf("phpMyAdmin") == -1) {
return;
}
var $table = $('table.table_results');
var oldContent = $table.text() + $table.data('uniqueid');
// 转换
function transform() {
$('table.table_results').find('td').each(function () {
var value = $(this).text();
// 字段类型判断
if ($(this).data('type') != 'int') {
return;
}
// 只对以1开头的10位数的单元格进行转换
if (!/^1\d{9}$/.test(value)) {
return;
}
var date = new Date(value * 1000);
var content = formatDate(date);
var thisClass = 'time2date' + randomString(10);
var thisStyle = `
<style id="${thisClass}">
td.${thisClass}:after {
position: absolute;
top: 50%;
left: 2px;
margin-top: -11px;
background: #03a9f42e;
display: block;
width: 138px;
height: 22px;
line-height: 22px;
text-align: center;
border-radius: 2px;
right: 100%;
font-style: normal;
content: "${content}";
}
</style>`;
$(this).css({ position: 'relative', 'min-width': '232px', 'box-sizing': 'border-box' }).addClass(thisClass);
$(document.body).append(thisStyle);
});
}
// 重置
function reset() {
$('table.table_results').find('td').each(function () {
var classes = $(this).attr('class').split(' ');
for (var i in classes) {
if (/^time2date/.test(classes[i])) {
// 移除旧样式表
$('#' + classes[i]).remove();
// 移除旧样式名称
$(this).css({ position: 'static', 'min-width': 'auto' }).removeClass(classes[i]);
}
}
});
}
// 自动转换
chrome.storage.local.get(['auto_transform'], function (result) {
if (result.auto_transform) {
transform();
setInterval(function () {
var $table = $('table.table_results'); // table会销毁和动态创建,不能通过外部变量缓存
var nowContent = $table.text() + $table.data('uniqueid');
if (oldContent != nowContent) {
oldContent = nowContent;
reset();
transform();
}
}, 1000);
}
});
// Ctrl + 鼠标左键, 或 Alt + 鼠标左键
$(document.body).mousedown(function (event) {
if (event.ctrlKey && event.which == 1) {
reset();
transform();
}
if (event.altKey && event.which == 1) {
reset();
}
});
/**
* 产生随机字符串
* @param {Integer} len
* @return {String}
*/
function randomString(len) {
len = len || 32;
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var maxPos = chars.length;
var str = '';
for (var i = 0; i < len; i++) {
str += chars.charAt(Math.floor(Math.random() * maxPos));
}
return str;
}
/**
* 将时间差转换成日期格式
* @param {Date} now
* @return {String}
*/
function formatDate(now) {
var year = now.getFullYear();
var month = now.getMonth() + 1;
var date = now.getDate();
var hour = now.getHours();
var minute = now.getMinutes();
var second = now.getSeconds();
month = month < 10 ? '0' + month : month;
date = date < 10 ? '0' + date : date;
hour = hour < 10 ? '0' + hour : hour;
minute = minute < 10 ? '0' + minute : minute;
second = second < 10 ? '0' + second : second;
return year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second;
}
});</code></pre>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js"></script>
<script src="https://yangrz.gitee.io/highlight.line-numbers.js/highlight.line-numbers.js"></script>
<script>
function switchStyle(obj) {
var name = obj.innerText;
var styles = document.querySelectorAll('link[title]');
for (var i = 0; i < styles.length; i++) {
styles[i].disabled = true;
if (name == styles[i].title) {
styles[i].disabled = false;
document.querySelector('button.current').className = '';
obj.className = 'current';
}
}
}
hljs.initHighlightingOnLoad();
hljsln.initLineNumbersOnLoad();
</script>
</body>
</html>
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )