1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/iceui-iceCode

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

iceCode кодовый выделитель цветами js плагин

Официальный

Описание

iceCode — это плагин выделителя кода с минималистичным дизайном, который, вероятно, является первым в своем роде js-плагином выделения кода, созданным в Китае. Разработан чисто на JavaScript, он имеет очень компактный размер и не требует никаких зависимостей, достаточно одного файла .js. В данный момент этот плагин уже включает в себя выделение кода для таких популярных языков программирования как HTML, XML, CSS, JS, PHP, Python, JAVA, SQL, GO, C++, C#, C и других.

Современный дизайн, простота и скорость!

Вы, наверное, знаете такие JavaScript-плагины для выделения кода, как SyntaxHighlighter, Google Code Prettify и Highlight. Все эти известные плагины были созданы зарубежными специалистами. А есть ли что-то подобное из Китая? По крайней мере, мне известно, что среди наиболее используемых плагинов нет ни одного китайского. После завершения работы над iceEditor (richText editor) я начал исследовать принципы выделения кода. Это заняло около месяца два года назад, и я справился с задачей. Первый вариант был очень эффективным, но механизм плагина нуждался в доработке.

Например, часть кода на php: echo "hello world"; // это комментарийПри использовании SyntaxHighlighter заметно, что комментарии не работают должным образом, поскольку после применения регулярного выражения комментарии становятся // это комментарий"; // это комментарий, а содержимое, заключённое в двойные кавычки, не обрабатывается корректно, следовательно, остальной код не подсвечивается. IceCode же решает эту проблему с регулярными выражениями идеально.Однако этого было недостаточно для меня. Я начал анализировать различные JavaScript-плагины для выделения кода, чтобы понять их принципы реализации. В результате я полностью перезаписал ядро iceCode, то есть третью версию. Теперь его производительность ещё выше, чем у SyntaxHighlighter, признанного лучшим JavaScript-плагином для выделения кода. Производительность iceCode превышает его более чем в три раза, и он уже включает в себя выделение кода для нескольких десятков популярных языков программирования, без необходимости использования дополнительных библиотек. Очень просто и лёгковесно.Сегодня iceCode полностью готов к использованию и открыт на gitee (не выбран GitHub потому что китайская платформа Gitee работает отлично, давайте поддерживать Gitee!). Я хочу сказать, что наши китайские плагины для выделения кода будут становиться все лучше и лучше. По крайней мере, на основе множества тестов можно констатировать, что они не уступают SyntaxHighlighter по качеству выделения кода, особенно когда дело доходит до настройки выделения для новых языков программирования.

Преимущества

  • Чисто нативное развитие, без каких-либо зависимостей, чистота и прозрачность
  • Адаптивный дизайн, который подходит для устройств с любым разрешением
  • Общий размер кода менее 30 кБ
  • Минималистичный эстетический дизайн, простой и быстрый
  • Быстродействие в три раза выше чем у SyntaxHighlighter
  • Устраняет недостатки многих плагинов для выделения кода#### Последнее обновление

iceCode v1.0.2

  • 2021-06-01
  • [Добавлено] Форматирование кода
  • [Добавлено] data-id: отображает HTML-код для данного ID
  • [Добавлено] data-width: позволяет установить ширину
  • [Добавлено] data-height: позволяет установить высоту
  • [Исправлено] Проблема с переносами при копировании кода
  • [Улучшено] Сайдбар номеров строк, адаптивная ширина
  • [Улучшено] Горизонтальные и вертикальные полосы прокрутки, адаптивные для мобильных устройств

iceCode v1.0.1

  • 2020-11-20
  • [Улучшено] Вес стилей
  • 2020-07-15
  • [Улучшено] Вес стилей
  • 2020-05-06
  • [Улучшено] Стили отображения
  • [Переписано] Ядро регулярных выражений
  • [Добавлено] Механизм пользовательских языков для выделения кода

Использование

<!-- Вставьте код внутрь тега template, установите класс, после iceCode укажите язык программирования -->
<template class="iceCode:php">
/* ---Пример кода--- */
function main() {
	var a = "this is a example";
	alert("hello world " + a);
}
/* ---Пример кода--- */
</template>
``````markdown
<!-- Если вам нужно показывать пример HTML и связанный код, это еще проще. -->
<div id="demo1">
    <div class="title">Одинокая рыба</div>
    <div class="content">
        <div class="text">Никогда не думал, что я так одинок... </div>
        <div class="time">2014-06-12</div>
    </div>
</div>
<!-- Значение атрибута data-id равно указанному ID, таким образом, все HTML содержимое demo1 будет выделено,
что не повлияет на макет demo1 -->
<template data-id="demo1"></template>

```javascript
// Это всё, что нужно сделать, действительно просто
ice.code.light();

Добавление синтаксического highlighting для других языков

<!-- Вставьте код в тег template, установите класс, после iceCode через двоеточие укажите язык программирования -->
<template class="iceCode:demo2">
/* ---Пример кода--- */
function main() {
    var a = 1024;
    var b = "это пример кода";
    console.log(a);
    alert("Hello World " + b);
}
/* ---Пример кода--- */
</template>
// ice.code.languages — это правила синтаксического highlighting для кода, можно добавлять другие языки, используя несколько псевдонимов разделённых пробелами
// ice.code.regexLib — это встроенный набор регулярных выражений, подробнее см. ниже
// regex принимает аргумент в виде регулярного выражения или функции(code), где code — содержимое кода, css — класс стилей
ice.code.languages['demo1 demo2 demo3'] = [
    {regex: ice.code.regexLib.doubleQuotes, css: 'string'},
    {regex: ice.code.regexLib.operator, css: 'operator'},
    {regex: function(code) {
        // Получаем цифры
        return code.replace(/\b([\d]+)\b/g, function(a) {
            return ice.code.setCss('number', a);
        });
    }},
];
ice.code.light();

ice.code.regexLib встроенная библиотека регулярных выражений


singleQuotes:			одиночные кавычки
number:					число
bracket:				скобка
operator:				оператор
url:					URL-ссылка
htmlComment:			множественный HTML-комментарий <! -- …… -->
xmlComment:				множественный XML-комментарий <! [ …… [ …… ]]>
multiLineComment:		универсальный множественный комментарий /* …… */
pythonComment:			множественный Python-комментарий """ …… """
singleLineComment:		однострочный комментарий // ……
singleLinePerlComment:	однострочный Perl-комментарий # ……
script:					форматированный JavaScript-код внутри тега script в HTML

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

iceCode — это минималистичный плагин для выделения кода на JavaScript, возможно, первый подобный отечественный плагин. Он разработан исключительно на нативном JavaScript и имеет компактный размер, не требуя никаких зависимостей. Плагин представляет собой один файл JavaScript. На данный момент в нём уже встроено выделение для таких популярных язы... Развернуть Свернуть
MIT
Отмена

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/iceui-iceCode.git
git@api.gitlife.ru:oschina-mirror/iceui-iceCode.git
oschina-mirror
iceui-iceCode
iceui-iceCode
master