Быстрый и удобный сервис для создания, хранения и шаринга сниппетов кода.
| Функция | Описание |
|---|---|
| ⚡ Быстрое создание | Создавайте сниппеты в один клик |
| 🎨 Подсветка синтаксиса | 100+ языков программирования |
| 🔗 Мгновенный шаринг | Уникальные короткие ссылки |
| ⏰ Автоудаление | Настраиваемое время жизни |
| 🔒 Приватность | Опциональная защита паролем |
| 📱 Адаптивность | Работает на любых устройствах |
>= 18.0.0>= 9.0.0 или yarn >= 1.22.0# Клонируйте репозиторий
git clone https://github.com/username/quicksnip.git
# Перейдите в директорию
cd quicksnip
# Установите зависимости
npm install
# Режим разработки
npm run dev
# Сборка для продакшена
npm run build
# Предпросмотр продакшен-сборки
npm run preview
Создайте файл .env в корне проекта:
# Основные настройки
NUXT_PUBLIC_APP_URL=http://localhost:3000
NUXT_PUBLIC_APP_NAME=QuickSnip
# База данных
DATABASE_URL=postgresql://user:password@localhost:5432/quicksnip
# Настройки сниппетов
SNIPPET_MAX_SIZE=50000
SNIPPET_DEFAULT_EXPIRY=24h
# API
API_RATE_LIMIT=100
API_SECRET_KEY=your-secret-key
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
SNIPPET_MAX_SIZE | number | 50000 | Максимальный размер сниппета (символы) |
SNIPPET_DEFAULT_EXPIRY | string | 24h | Время жизни по умолчанию |
API_RATE_LIMIT | number | 100 | Лимит запросов в минуту |
// Пример кода для сниппета
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet("World"));
Вы получите уникальную ссылку:
https://quicksnip.io/s/abc123
quicksnip/
├── assets/
│ └── css/
│ └── main.css
├── components/
│ ├── Editor/
│ │ ├── CodeEditor.vue
│ │ ├── LanguageSelector.vue
│ │ └── ThemeToggle.vue
│ ├── Snippet/
│ │ ├── SnippetCard.vue
│ │ ├── SnippetView.vue
│ │ └── SnippetShare.vue
│ └── UI/
│ ├── Button.vue
│ ├── Modal.vue
│ └── Toast.vue
├── composables/
│ ├── useSnippet.ts
│ └── useClipboard.ts
├── pages/
│ ├── index.vue
│ ├── create.vue
│ └── s/
│ └── [id].vue
├── server/
│ └── api/
│ └── snippets/
│ ├── index.post.ts
│ └── [id].get.ts
├── content/
│ └── guide.md
├── nuxt.config.ts
└── package.json
curl -X POST https://quicksnip.io/api/snippets \
-H "Content-Type: application/json" \
-d '{
"code": "console.log(\"Hello World\")",
"language": "javascript",
"expiresIn": "24h"
}'
Ответ:
{
"id": "abc123",
"url": "https://quicksnip.io/s/abc123",
"expiresAt": "2024-01-16T12:00:00Z"
}
# Установка CLI
npm install -g quicksnip-cli
# Создание сниппета из файла
quicksnip upload ./script.js
# Создание из stdin
cat script.js | quicksnip
| Формат | URL | Описание |
|---|---|---|
| Стандартный | /s/abc123 | Страница просмотра |
| Raw | /s/abc123/raw | Только код |
| Embed | /s/abc123/embed | Для iframe |
| Download | /s/abc123/download | Скачать файл |
<iframe
src="https://quicksnip.io/s/abc123/embed"
width="100%"
height="400"
frameborder="0"
>
</iframe>
[](https://quicksnip.io/s/abc123)
// composables/useEditorConfig.ts
export const useEditorConfig = () => {
return {
theme: "dark",
fontSize: 14,
tabSize: 2,
lineNumbers: true,
wordWrap: true,
};
};
| Комбинация | Действие |
|---|---|
Ctrl + Enter | Создать сниппет |
Ctrl + S | Сохранить изменения |
Ctrl + C | Копировать код |
Ctrl + L | Выбрать язык |
Ctrl + D | Дублировать строку |
Ctrl + / | Закомментировать |
Esc | Закрыть модальное окно |
Ошибка: "Snippet creation failed"
Решение:
# Проверка API
curl -I https://quicksnip.io/api/health
Причина: Язык не определён автоматически
Решение:
Выберите язык вручную из выпадающего списка или добавьте shebang:
#!/usr/bin/env python3
print("Hello World")
Ошибка: "Snippet not found or expired"
Возможные причины:
Мы рады вашим контрибуциям!
git checkout -b feature/amazing-feature
git commit -m "feat: add amazing feature"
git push origin feature/amazing-feature
Используйте Conventional Commits:
feat: — новая функцияfix: — исправление багаdocs: — документацияstyle: — форматированиеrefactor: — рефакторингMIT License
Copyright (c) 2024 QuickSnip
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files...
QuickSnip — Делитесь кодом легко! ✂️