mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
ui: support data-line
This commit is contained in:
1 parent
b28fa5ca08
commit
e67ecd9768
4 files changed
+25
-4
No files matched your search
@@ -25,6 +25,18 @@ code
|
|||||||
[data-syntax-hl-show-line-number] pre.line-numbers > code
|
[data-syntax-hl-show-line-number] pre.line-numbers > code
|
||||||
white-space: pre
|
white-space: pre
|
||||||
|
|
||||||
|
.line-highlight
|
||||||
|
position: absolute
|
||||||
|
left: 0
|
||||||
|
right: 0
|
||||||
|
padding: inherit 0
|
||||||
|
margin-top: 1em /* Same as .prism’s padding-top */
|
||||||
|
background: hsla(24, 20%, 50%,.08)
|
||||||
|
background: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0))
|
||||||
|
pointer-events: none
|
||||||
|
line-height: inherit
|
||||||
|
white-space: pre
|
||||||
|
|
||||||
.sample > .toolbar
|
.sample > .toolbar
|
||||||
right: 0.9375em !important
|
right: 0.9375em !important
|
||||||
top: 3.7875em !important
|
top: 3.7875em !important
|
||||||
|
|||||||
@@ -6,14 +6,22 @@ import tpl from 'vj/utils/tpl';
|
|||||||
const highlighterPage = new AutoloadPage('highlighterPage', () => {
|
const highlighterPage = new AutoloadPage('highlighterPage', () => {
|
||||||
import('./prismjs').then(({ default: prismjs }) => {
|
import('./prismjs').then(({ default: prismjs }) => {
|
||||||
function runHighlight($container) {
|
function runHighlight($container) {
|
||||||
|
$container.find('pre code').get().forEach((code) => {
|
||||||
|
const language = ($(code).attr('class') || '').trim();
|
||||||
|
const m = language.match(/language-([a-z0-9]+)(\|[\d,-]+)/);
|
||||||
|
if (m?.[2]) {
|
||||||
|
$(code).parent().attr('data-line', m[2].substring(1));
|
||||||
|
$(code).attr('class', `language-${m[1]}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
prismjs.highlightBlocks($container);
|
prismjs.highlightBlocks($container);
|
||||||
$container.find('pre code').get().forEach((code) => {
|
$container.find('pre code').get().forEach((code) => {
|
||||||
const $code = $(code);
|
const $code = $(code);
|
||||||
const $root = $code.parent().parent();
|
const $root = $code.parent().parent();
|
||||||
const language = ($(code).attr('class') || '').trim();
|
const language = ($(code).attr('class') || '').trim();
|
||||||
const m = language.match(/language-([a-z0-9]+)/);
|
const m = language.match(/language-input([0-9]+)/);
|
||||||
if (m && m[1] && m[1].toLowerCase().startsWith('input')) {
|
if (m?.[1]) {
|
||||||
const id = +m[1].substr(5, m[1].length - 5);
|
const id = +m[1];
|
||||||
if (Number.isSafeInteger(id)) {
|
if (Number.isSafeInteger(id)) {
|
||||||
const $output = $container.find(`pre.language-output${id}`);
|
const $output = $container.find(`pre.language-output${id}`);
|
||||||
if ($output.length) {
|
if ($output.length) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import 'prismjs/plugins/toolbar/prism-toolbar';
|
|||||||
import 'prismjs/plugins/toolbar/prism-toolbar.css';
|
import 'prismjs/plugins/toolbar/prism-toolbar.css';
|
||||||
import 'prismjs/plugins/line-numbers/prism-line-numbers';
|
import 'prismjs/plugins/line-numbers/prism-line-numbers';
|
||||||
import 'prismjs/plugins/line-numbers/prism-line-numbers.css';
|
import 'prismjs/plugins/line-numbers/prism-line-numbers.css';
|
||||||
|
import 'prismjs/plugins/line-highlight/prism-line-highlight';
|
||||||
|
|
||||||
import Clipboard from 'clipboard';
|
import Clipboard from 'clipboard';
|
||||||
import $ from 'jquery';
|
import $ from 'jquery';
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@hydrooj/ui-default",
|
"name": "@hydrooj/ui-default",
|
||||||
"version": "4.39.18",
|
"version": "4.39.19",
|
||||||
"author": "undefined <i@undefined.moe>",
|
"author": "undefined <i@undefined.moe>",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"main": "hydro.js",
|
"main": "hydro.js",
|
||||||
|
|||||||
Reference in new issue
Block a user