Slate помогает создавать красивую, интеллектуальную и отзывчивую документацию по API.
Пример выше был создан с помощью Slate. Проверьте это на slatedocs.github.io/slate.[19459006provided
Особенности
Чистый, интуитивно понятный дизайн — В Slate описание вашего API находится в левой части документации, а все примеры кода — в правой. На основе документов API Stripe и PayPal. Slate отзывчивый, поэтому отлично смотрится на планшетах, телефонах и даже в печати.
Все на одной странице — Прошли те времена, когда вашим пользователям приходилось искать по миллиону страниц, чтобы найти то, что они хотели. Slate помещает всю документацию на одну страницу. Однако мы не пожертвовали возможностью связывания. По мере прокрутки хэш вашего браузера будет обновляться до ближайшего заголовка, поэтому связывание с конкретным местом в документации по-прежнему будет естественным и простым.
Slate — это просто Markdown — Когда вы пишете документы с помощью Slate, вы просто пишете Markdown, что упрощает редактирование и понимание. Все написано на Markdown — даже примеры кода — это просто блоки кода Markdown.
Написание примеров кода на нескольких языках — Если ваш API имеет привязки на нескольких языках программирования, вы можете легко вставлять вкладки для переключения между ними. В своем документе вы будете различать разные языки, указав имя языка в верхней части каждого блока кода, как в случае с GitHub Flavored Markdown.
Встроенная подсветка синтаксиса для более чем 100 языков, настройка не требуется.
Автоматическая плавная прокрутка содержания в крайнем левом углу страницы. По мере прокрутки отображается ваше текущее положение в документе. Это тоже быстро. Мы используем Slate в TripIt для создания документации для нашего нового API, в котором наше оглавление содержит более 180 записей. Мы позаботились о том, чтобы производительность оставалась превосходной даже для больших документов.
Разрешите пользователям обновлять вашу документацию за вас — По умолчанию ваша документация, созданная на Slate, размещается в общедоступном репозитории GitHub. Это не только означает, что вы получаете бесплатный хостинг для своих документов с помощью GitHub Pages, но и упрощает другим разработчикам отправку запросов на вытягивание в ваши документы, если они обнаруживают опечатки или другие проблемы. Конечно, если вы не хотите использовать GitHub, вы также можете разместить свои документы в другом месте.
Поддержка RTL Полная раскладка справа налево для языков RTL, таких как арабский, персидский (фарси), иврит и т. Д.
Начать работу со Slate очень просто! Просто нажмите зеленую кнопку «использовать этот шаблон» выше и следуйте инструкциям ниже. Или, если вы хотите узнать, на что способен Slate, взгляните на образцы документации.
Начало работы с Slate
Чтобы начать работу со Slate, ознакомьтесь с Приступая к работе
раздел в нашей вики.
Мы поддерживаем запуск Slate тремя различными способами:
Компании, использующие сланец
Вы можете просмотреть больше в списке на вики.
Вопросы? Нужна помощь? Нашли ошибку?
Если у вас есть вопросы по настройке, развертыванию, реализации специальных функций в вашей вилке или вы просто хотите поговорить с разработчиком, начните обсуждение на нашей вкладке «Обсуждения»!
Нашли ошибку в исходной версии Slate? Идите вперед и отправьте вопрос. И, конечно же, не стесняйтесь отправлять запросы на включение с исправлениями ошибок или изменениями в ветку dev .
Авторы
Slate был построен Робертом Лордом во время работы в TripIt. В настоящее время проект поддерживают Мэтью Певелер и Майк Ральфсон.
Благодарю следующих людей, отправивших основные запросы на включение:
Также спасибо Sauce Labs за спонсирование разработки адаптивных стилей.
Если вы начали работать с генераторами статических сайтов, знали ли вы, что можете использовать репозитории шаблонов GitHub для быстрого запуска новых проектов и сокращения времени на настройку? Большинство генераторов статического сайта упрощают установку, но каждый проект требует настройки после установки. Когда вы создаете много похожих проектов, вы можете дублировать усилия на этапе установки. Репозитории шаблонов…
Этот репозиторий содержит определения пакета Guix, службы и определения системы для программного обеспечения и систем, конкретно связанных с GOV.UK. См. Doc / installation.md для получения полного списка необходимых условий и шаги. Самый надежный способ запустить включенные сценарии — через включенный сценарий говука. Каталог bin можно добавить в PATH для легкий доступ, например: экспорт PATH =…
Примеры проектов, в которых показано, как использовать API-интерфейсы консоли Windows
Другие связанные репозитории включают в себя:
Статус сборки
Проект
Статус сборки
Терминал
Пожалуйста, уделите несколько минут просмотру приведенного ниже обзора, прежде чем углубляться в код:
Windows Terminal
Windows Terminal — это новое, современное, многофункциональное, производительное терминальное приложение для пользователей командной строки. Он включает в себя многие функции, наиболее часто запрашиваемые сообществом командной строки Windows, включая поддержку вкладок, форматированного текста, глобализации, конфигурируемости, создания тем и стилей и т. Д.
Терминал также должен будет соответствовать нашим целям и мерам, чтобы он оставался быстрым, эффективным и не потреблял огромного количества памяти или энергии.
Консольный хост Windows
Консольный хост Windows, conhost.exe представляет собой оригинальный интерфейс пользователя командной строки Windows. Он реализует инфраструктуру командной строки Windows и отвечает за размещение API консоли Windows, механизма ввода, механизма рендеринга и пользовательских настроек. Хост-код консоли в этом репозитории является фактическим источником, из которого conhost.exe собран в самой Windows.
Основная цель консоли — обеспечить обратную совместимость с существующими приложениями консольной подсистемы.
С момента вступления во владение командной строкой Windows в 2014 году команда добавила в консоль несколько новых функций, включая прозрачность окон, выбор на основе строк, поддержку последовательностей ANSI / виртуальных терминалов, 24-битный цвет, псевдоконсоль. («ConPTY») и др.
Однако, поскольку основная цель консоли — поддерживать обратную совместимость, мы не смогли добавить многие функции, о которых просило сообщество, и которые мы хотели добавить в течение последних нескольких лет — как вкладки!
Эти ограничения привели нас к созданию нового терминала Windows.
Общие компоненты
Во время капитального ремонта консоли мы значительно модернизировали ее кодовую базу. Мы четко разделили логические сущности на модули и классы, ввели некоторые ключевые точки расширения, заменили несколько старых домашних коллекций и контейнеров на более безопасные и эффективные контейнеры STL и сделали код проще и безопаснее, используя библиотеку заголовков WIL от Microsoft.
Результатом этой работы по капитальному ремонту стало создание нескольких ключевых компонентов, которые были бы полезны для любой реализации терминала в Windows, включая новый механизм разметки текста и рендеринга на основе DirectWrite, текстовый буфер, способный хранить как UTF-16, так и UTF-. 8, и анализатор / эмиттер VT.
Строительство нового терминала
Когда мы начали создавать новое терминальное приложение, мы исследовали и оценили несколько подходов и технологических стеков. В конечном итоге мы решили, что наши цели будут лучше всего достигнуты, если придерживаться C ++ и делиться вышеупомянутыми модернизированными компонентами, поместив их поверх современной платформы приложений Windows и инфраструктуры пользовательского интерфейса.
Кроме того, мы поняли, что это позволит нам создать рендер и стек ввода терминала в качестве многократно используемого элемента управления пользовательского интерфейса Windows, который другие могут включать в свои приложения.
Где я могу загрузить Windows Terminal?
Двоих файлов для загрузки пока нет.
Терминал Windows находится на очень ранней альфа-стадии и еще не готов для широкой публики. Если вы хотите начать раньше, вы можете попробовать создать его самостоятельно из исходного кода.
В противном случае вам придется подождать до середины июня, чтобы официальная предварительная сборка прекратилась.
Я построил и запустил новый терминал, но у меня просто пустое окно приложения!
Убедитесь, что вы строите для архитектуры своего компьютера. Если на вашем компьютере установлена 64-разрядная версия Windows, измените свою платформу решений на x64. Чтобы проверить архитектуру своей ОС, перейдите в «Настройки» -> «Система» -> «О программе» (или Win + X -> Система) и в разделе спецификации устройства проверка для Тип системы
Я собрал и запустил новый терминал, но он выглядит как старая консоль! Что дает?
Во-первых, убедитесь, что вы собираете и развертываете CascadiaPackage в Visual Studio, НЕ Host.EXE . OpenConsole.exe — это просто conhost.exe та же старая консоль, которую вы знаете и любите. opencon.cmd запустит openconsole.exe и, к сожалению, openterm.cmd в настоящее время не работает.
Во-вторых, попробуйте нажать Ctrl + T . Вкладки скрыты, когда у вас есть только одна вкладка по умолчанию. В будущем пользовательский интерфейс будет сильно отличаться, но на данный момент значения по умолчанию должны выглядеть как значения по умолчанию консоли.
Я попытался запустить WindowsTerminal.exe, и он вылетел!
Не пытайтесь запустить его без упаковки. Обязательно соберите и разверните CascadiaPackage из Visual Studio и запустите приложение Windows Terminal (Dev Build).
Убедитесь, что вы используете правильную версию Windows. Вам нужно быть на сборках Insider или ждать выпуска 1903 года, поскольку Windows Terminal ТРЕБУЕТ функций из последней версии Windows.
Предпосылки
Вы должны использовать Windows 1903 (сборка> = 10.0.18362.0) или выше, чтобы запустить Windows Terminal
У вас должен быть установлен 1903 SDK (сборка 10.0.18362.0)
У вас должен быть установлен по крайней мере VS 2017.
Вы должны установить следующие рабочие нагрузки через установщик VS. Если вы используете VS 2019, при открытии решения вам будет предложено автоматически установить недостающие компоненты.
Разработка рабочего стола с C ++
Разработка универсальной платформы Windows
Также установите следующий отдельный компонент:
C ++ (v141) Универсальные инструменты для платформы Windows
Вы также должны включить режим разработчика в приложении «Настройки Windows», чтобы локально установить и запустить приложение «Терминал».
Отладка
Чтобы выполнить отладку в VS, щелкните правой кнопкой мыши CascadiaPackage (из VS Solution Explorer) и перейдите в свойства, в меню «Отладка» измените «Процесс приложения» и «Процесс фоновой задачи» на «Только собственный»
Вклад
Мы рады работать вместе с вами, нашим удивительным сообществом, над созданием и улучшением Windows Terminal!
Мы просим прежде чем вы начнете работать над функцией, которую вы хотели бы добавить, пожалуйста, напишите вопрос описывающий ваши предлагаемые изменения : Мы будем рады работать с вами, чтобы выяснить наилучший подход, обеспечить руководство и наставничество в процессе разработки функций, а также избежать ненужных или дублирующих усилий.
👉 Помните! Ваш вклад может быть включен в будущие версии Windows! Из-за этого все запросы извлечения будут подвергаться тому же уровню контроля качества, стандартов кодирования, производительности, глобализации, доступности и совместимости, что и наши внутренние участники.
⚠ Примечание : Команда командной строки активно работает над этим хранилищем и будет периодически реструктурировать код, чтобы упростить понимание, навигацию, сборку, тестирование и содействие, поэтому действительно ожидают значительных изменений в компоновке кода на регулярной основе .
Документация
Вся документация находится в папке ./ doc . Если вы хотите внести свой вклад в документацию, отправьте запрос на извлечение.
Общение с командой
Самый простой способ общения с командой — через GitHub. Пожалуйста, регистрируйте новые проблемы, запросы функций и предложения, но НЕ Ищите подобные открытые / закрытые ранее существующие проблемы прежде, чем делать .
Пожалуйста, помогите нам сохранить этот репозиторий в чистоте, включительно и весело! Мы не потерпим никакого оскорбительного, грубого, неуважительного или неуместного поведения. Прочитайте наш Кодекс поведения для более подробной информации.
Если вы хотите задать вопрос, который, по вашему мнению, не является проблемой (пока), обратитесь к нам через Twitter:
Создание Кодекса
Этот репозиторий использует подмодули git для некоторых своих зависимостей. Чтобы убедиться, что подмодули восстановлены или обновлены, обязательно выполните перед сборкой следующее:
Обновление подмодуля git --init --recursive
OpenConsole.sln может быть собран из Visual Studio или из командной строки с использованием MSBuild. Для сборки из командной строки найдите вашу оболочку ниже.
Мы предоставили набор удобных сценариев, а также README в каталоге / tools чтобы помочь автоматизировать процесс создания и запуска тестов.
Руководство по кодированию
Пожалуйста, ознакомьтесь с этими краткими документами ниже, касающимися наших стандартов кодирования и т. Д.
👉 Если вы обнаружите, что чего-то не хватает в этих документах, не стесняйтесь вносить вклад в любой из наших файлов документации в любом месте репозитория (или создавать новые!)
Это незавершенная работа, поскольку мы узнаем, что нам нужно предоставить людям, чтобы они могли внести эффективный вклад в наш проект.
В этом проекте принят открытый кодекс поведения Microsoft.
Для получения дополнительной информации см. FAQ по Кодексу поведения или свяжитесь с opencode@microsoft.com с любыми дополнительными вопросами или комментариями.
Продолжается работа по расширению Flutter для поддержки рабочего стола в качестве целевой среды, что позволяет разработчикам создавать приложения MacOS, Windows и Linux с помощью Flutter. В конечном счете, эти усилия приведут к созданию полностью интегрированного решения, в котором flutter create flutter run и flutter build работают для настольных платформ так же, как они это…
И почему вы тоже должны это делать Страница вашего репозитория GitHub выглядит следующим образом? * Некоторые записи на странице были удалены для краткости, чтобы проиллюстрировать эту мысль. Все остальные записи отображаются на странице репозиториев этого пользователя. ** Пользователь был выбран случайным образом, и я намерен не критиковать, а предложить его в качестве примера. См. Проблему?…
Текущая версия наконечника: .VERSION (см. Выпуски для двоичных версий) Важные примечания ВЫ ДОЛЖНЫ ПРОЧИТАТЬ СОДЕЙСТВУЮЩИЙ КОД, ПРЕЖДЕ ЧЕМ НАЧАТЬ РАБОТУ ПО ЗАПРОСУ ТЯГИ . В связи с целью тестирования данные try.gogs.io были сброшены в 28 января 2015 года и будут сбрасываться несколько раз после. Пожалуйста, НЕ размещайте ваши важные данные на сайте. Демонстрационный сайт try.gogs.io…
минимальный набор типографики, посвященной Medium.com Установка npm install —save medium.css Если вы не используете бандлер, скачайте файл medium.css и свяжите его в своем HTML Демонстрация жить: https://codepen.io/lucagez/full/bQObBe/ Если вы хотите запустить демо локально, просто клонируйте репозиторий и запустите npm install а затем npm start внутри / demo directory Почему Я обнаружил, что всегда боролся за…
Большой список Naughty Strings — это эволюционирующий список строк, которые имеют высокую вероятность возникновения проблем при использовании в качестве пользовательских данных. Это предназначено для использования в автоматическом и ручном QA-тестировании; полезно, когда ваш инженер QA входит в бар. Зачем тестировать непослушные струны? Даже многомиллиардные компании с огромным количеством автоматизированного тестирования не могут найти все плохие…
HermitCore-rs разрабатывается на GitHub.
Создайте свою собственную вилку, отправьте нам запрос на тяну и поговорите с нами на Slack.
Требования
Процесс сборки работает в настоящее время только на системах на базе x86 Linux . Строить
ядро и теги HermitCore-rs, которые вам нужны:
CMake
Netwide Assember (NASM)
Недавний компилятор хоста, такой как GCC
Крест-инструментальная цепочка HermitCore, то есть Binutils, GCC, newlib, pthreads
Компилятор ржавчины (ночной выпуск)
xargo, который может быть установлен с грузовой установкой xargo
Исходный код Rust для Xargo, который может быть установлен с компонентом rustup, добавляет rust-src .
Перекрестная инструментальная нить HermitCore-rs
Мы предоставляем готовые пакеты (в настоящее время только Ubuntu 18.04) от HermitCore-rs
Набор инструментов. Пакеты могут быть установлены следующим образом:
$ echo " deb [trusted=yes] https://dl.bintray.com/hermitcore/ubuntu bionic main " | sudo tee -a /etc/apt/sources.list
$ sudo apt-get -qq update
$ sudo apt-get install binutils-hermit newlib-hermit-rs pte-hermit-rs gcc-hermit-rs libomp-hermit-rs
Если вы хотите самостоятельно построить инструментальную цепочку, посмотрите на ветку path2rs в репозитории
отшельник-набор инструменты.
Он содержит скрипты для создания всей инструментальной цепочки для HermitCore-rs.
В зависимости от того, как вы хотите использовать HermitCore-rs, вам могут потребоваться дополнительные пакеты
таких как:
QEMU ( apt-get install qemu-system-x86 )
Строительство
Предварительная работа
В качестве первого шага необходимо клонировать хранилище и его подмодули:
Построение библиотечных операционных систем и их примеров
Чтобы построить ядро Rust и его примеры, перейдите в каталог с исходным кодом
и выполните следующие команды:
$ mkdir build
$ cd сборка
$ cmake ..
$ make
$ sudo make install
Если ваша инструментальная цепочка не находится в / opt / hermit / bin тогда вам нужно поставить
его расположение к команде cmake выше, например:
$ cmake -DTOOLCHAIN_BIN_DIR = / home / user / hermit / bin ..
Предполагая, что бинарные файлы, такие как x86_64-hermit-gcc и друзья, находятся в этом
каталог.
Чтобы установить новую версию в тот же каталог, вам необходимо установить путь установки и установить HermitCore-rs следующим образом:
$ cmake -DTOOLCHAIN_BIN_DIR = / home / user / hermit / bin -DCMAKE_INSTALL_PREFIX = / home / user / hermit ..
$ make
$ make install
Примечание: Если вы используете кросс-компилятор вне этого репозитория, он использует библиотечную операционную систему, расположенную
с помощью инструментальной цепочки (например, /opt/hermit/x86_64-hermit/lib/libhermit.a ).
Прокси
Часть HermitCore — это небольшой вспомогательный инструмент, который называется прокси .
Этот инструмент помогает запускать приложения HermitCore на виртуальной машине или голой части на узле NUMA.
В принципе это мост к системе Linux.
Если прокси зарегистрирован как загрузчик системы Linux, приложения HermitCore могут запускаться как обычные приложения Linux.
Прокси можно зарегистрировать с помощью следующей команды:
В противном случае прокси-сервер должен быть запущен напрямую и в качестве аргумента нуждается в пути к приложению HermitCore:
$ # с использованием QEMU
$ HERMIT_ISLE = qemu / opt / hermit / bin / proxy / opt / hermit / x86_64-отшельник / дополнительные / тесты / привет
После этого прокси-сервер запускает приложение HermitCore внутри виртуальной машины или голосовой металл на узле NUMA.
Тестирование
Как классический автономный одноядерник в виртуальной машине
Приложения HermitCore могут быть непосредственно запущены как автономное ядро в пределах
виртуальная машина:
$ cd сборка
$ make install DESTDIR = ~ / отшельник
$ cd ~ / hermit-build / opt / отшельник
$ # с использованием QEMU
$ HERMIT_ISLE = qemu bin / proxy x86_64-отшельник / дополнительные / тесты / привет
$ # с использованием uHyve
$ HERMIT_ISLE = uhyve bin / proxy x86_64-отшельник / дополнительные / тесты / привет
С HERMIT_ISLE = qemu приложение будет запущено в виртуальной машине QEMU.
Обратите внимание, что загрузчик требует QEMU и использует KVM по умолчанию.
Кроме того, он ожидает, что исполняемый файл называется qemu-system-x86_64 .
С HERMIT_ISLE = uhyve приложение будет запущено в тонком
гипервизор, основанный на KVM API Linux, и поэтому требуется поддержка KVM .
uhyve имеет значительно меньшее время запуска, чем QEMU.
В принципе, это расширение уквм.
В этом контексте переменная среды HERMIT_CPUS указывает количество
CPU (и уже не диапазон идентификаторов ядра). Кроме того, переменная HERMIT_MEM
определяет размер памяти виртуальной машины. Суффиксы M и G могут быть
используется для указания значения в мегабайтах или гигабайтах соответственно. По умолчанию
loader инициализирует систему с одним ядром и 2 гигабайтами RAM.
Например, следующая команда запускает тест потока на виртуальной машине, который
имеет 4 ядра и 6 ГБ памяти:
$ HERMIT_ISLE = qemu HERMIT_CPUS = 4 HERMIT_MEM = 6G bin / proxy x86_64-отшельник / дополнительные / контрольные точки / поток
Чтобы включить устройство Ethernet для uhyve мы должны настроить устройство крана на
хост-системы. Например, следующая команда устанавливает устройство крана tap100 на Linux:
$ sudo ip tuntap add tap100 mode tap
$ sudo ip addr Добавить 10.0.5.1/24 broadcast 10.0.5.255 dev tap100
$ sudo ip link set dev tap100 up
$ sudo bash -c ' echo 1> / proc / sys / net / ipv4 / conf / tap100 / proxy_arp '
По умолчанию сетевой интерфейс uhyve использует 10.0.5.2 как IP-адрес, 10.0.5.1
для шлюза и 255.255.255.0 в качестве сетевой маски.
Конфигурация по умолчанию может быть перезаписана переменными окружения HERMIT_IP HERMIT_GATEWAY и HERMIT_MASk .
Чтобы включить устройство, HERMIT_NETIF должно быть установлено на имя устройства крана.
Например, следующая команда запускает приложение HermitCore в ухиве
и позволяет поддерживать сеть:
Если qemu используется как hyervisor, виртуальная машина эмулирует интерфейс Ethernet RTL8139 и открывает по крайней мере один порт TCP / IP.
Он используется для связи между приложением HermitCore и его прокси.
Используя переменную окружения HERMIT_PORT порт связи по умолчанию (18766) можно изменить.
В качестве многоядерного ядра на реальной машине
Скоро …
Создание собственных приложений HermitCore
Вы можете взять usr / tests в качестве отправной точки для создания собственных приложений. Все
требуется, чтобы вы включили [...] /HermitCore/cmake/HermitCore-Application.cmake в приложении CMakeLists.txt . Он не должен находиться внутри репозитория HermitCore.
Кроме этого, он должен вести себя как обычный CMake.
Отладка
Если приложение запущено через сделайте qemu отладка через GDB включена
по умолчанию на порту 1234. При запуске через прокси ( HERMIT_ISLE = qemu ) установите HERMIT_DEBUG = 1 .
$ gdb x86_64-отшельник / дополнительные / тесты / привет
(gdb) target extended-remote: 1234
Удаленная отладка с использованием: 1234
0xffffffff8100b542 в ?? ()
Советы
Оптимизация
Вы можете настроить флаг компилятора -mtune = name добавив -DMTUNE = имя в
команда cmake при настройке проекта.
Обратите внимание: если приложения запускаются в виртуальной машине, гипервизор должен
поддерживают указанное имя архитектуры.
Если QEMU запущен нашим прокси и переменной окружения установлен HERMIT_KVM
к 0 виртуальная машина не будет ускорена KVM. В этом случае -mtune следует избегать.
TCP-соединения
Используя переменную окружения HERMIT_APP_PORT можно открыть дополнительный порт
установить соединение TCP / IP с вашим приложением.
Сбрасывание журнала ядра
Установив переменную окружения HERMIT_VERBOSE на 1 прокси-печать
сообщения журнала ядра на экран при завершении.
Трассировка сети
Установив переменную окружения HERMIT_CAPTURE_NET на 1 и HERMIT_ISLE — qemu QEMU фиксирует сетевой трафик и создает трассировку
файл qemu-vlan0.pcap . Вы можете проанализировать файл, например.
Wireshark.
Монитор
Если HERMIT_MONITOR установлено в 1 и HERMIT_ISLE — qemu QEMU устанавливает
монитор, который доступен через telnet в порту 18767.
Используя переменную окружения HERMIT_PORT порт по умолчанию (18766) можно изменить для связи между приложением HermitCore и его прокси.
Подключение к системному монитору автоматически устанавливается на HERMIT_PORT + 1 то есть порт по умолчанию — 18767.
Кредиты
Emoji от HermitCore предоставляется бесплатно от EmojiOne.