Răsfoiți Sursa

add base files

Leskov Oleg 2 săptămâni în urmă
părinte
comite
e0ecdb60ab
8 a modificat fișierele cu 259 adăugiri și 0 ștergeri
  1. 27 0
      .editorconfig
  2. 3 0
      .gitignore
  3. 34 0
      .pug-lintrc.js
  4. 43 0
      .stylintrc
  5. 22 0
      DEVELOPMENT.md
  6. 63 0
      DeepSeek.md
  7. 1 0
      README.md
  8. 66 0
      coffeelint.json

+ 27 - 0
.editorconfig

@@ -0,0 +1,27 @@
+# EditorConfig helps developers define and maintain consistent
+# coding styles between different editors and IDEs
+# https://editorconfig.org
+
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.{coffee,js,json}]
+indent_style = space
+indent_size = 4
+
+[*.{pug,jade}]
+indent_style = space
+indent_size = 4
+
+[*.{styl,css}]
+indent_style = space
+indent_size = 4
+
+[*.{html,md}]
+indent_style = space
+indent_size = 4

+ 3 - 0
.gitignore

@@ -0,0 +1,3 @@
+html.json
+pug.json
+styl.json

+ 34 - 0
.pug-lintrc.js

@@ -0,0 +1,34 @@
+module.exports = {
+  // Отступы и форматирование
+  "validateIndentation": 4,
+  "disallowTrailingSpaces": true,
+  "disallowMultipleLineBreaks": true,
+  "requireLineFeedAtFileEnd": true,
+  
+  // Регистр и атрибуты
+  "requireLowerCaseAttributes": true,
+  "requireLowerCaseTags": true,
+  "validateAttributeQuoteMarks": "\"",
+  "disallowSpacesInsideAttributeBrackets": true,
+  
+  // Структура и порядок
+  "requireClassLiteralsBeforeAttributes": true,
+  "requireIdLiteralsBeforeAttributes": true,
+  "disallowClassAttributeWithStaticValue": true,
+  "disallowDuplicateAttributes": true,
+  "disallowClassLiteralsBeforeIdLiterals": true,
+  
+  // Стиль кода
+  "disallowHtmlText": true,
+  "disallowBlockExpansion": true,
+  "disallowAttributeInterpolation": true,
+  "requireStrictEqualityOperators": true,
+  
+  // Валидация тегов
+  "validateDivTags": true,
+  "validateSelfClosingTags": true,
+  "validateTemplateString": true,
+  
+  // Лимиты
+  "maximumNumberOfLines": 500
+}

+ 43 - 0
.stylintrc

@@ -0,0 +1,43 @@
+{
+  "blocks": true,
+  "brackets": "never",
+  "colons": "always",
+  "colors": "always",
+  "commaSpace": "always",
+  "commentSpace": "always",
+  "cssLiteral": "never",
+  "customProperties": [],
+  "depthLimit": 6,
+  "duplicates": true,
+  "efficient": "always",
+  "exclude": [],
+  "extendPref": "@extends",
+  "globalDupe": false,
+  "groupOutputByFile": true,
+  "indentPref": true,
+  "leadingZero": "never",
+  "maxErrors": 100,
+  "maxWarnings": 100,
+  "mixed": false,
+  "mixins": [],
+  "namingConvention": false,
+  "namingConventionStrict": false,
+  "none": "never",
+  "noImportant": true,
+  "parenSpace": false,
+  "placeholders": "always",
+  "prefixVarsWithDollar": "always",
+  "quotePref": "double",
+  "semicolons": "never",
+  "sortOrder": "alphabetical",
+  "stackedProperties": "never",
+  "trailingWhitespace": "never",
+  "universal": false,
+  "valid": true,
+  "zeroUnits": "never",
+  "zIndexNormalize": false,
+  
+  "indents": 4,
+  "semicolons": false,
+  "alwaysSemicolon": false
+}

+ 22 - 0
DEVELOPMENT.md

@@ -0,0 +1,22 @@
+# Руководство по разработке
+
+## Стандарты кода
+
+### Coffeescript
+- Отступ: 4 пробела
+- Используйте camelCase для переменных и функций
+- Используйте PascalCase для классов
+- Избегайте точку с запятой
+- Используйте `->` для функций, `=>` только когда нужно сохранить контекст `this`
+
+### Pug
+- Отступ: 4 пробела
+- Атрибуты в двойных кавычках
+- Порядок атрибутов: `class`, `id`, остальные в алфавитном порядке
+- Используйте миксины для повторяющихся компонентов
+
+### Stylus
+- Отступ: 4 пробела
+- Используйте вложенность там где это имеет смысл
+- Комбинируйте Tailwind @apply с кастомными стилями
+- Переменные именуйте в kebab-case: `$primary-color`

+ 63 - 0
DeepSeek.md

@@ -0,0 +1,63 @@
+---
+
+**Роль и Экспертиза**
+Ты — senior fullstack разработчик-прагматик с экспертизой в стеке: **Coffeescript, Pug, Stylus и Tailwind CSS**. Ты не просто знаешь синтаксис, но понимаешь, когда и какой инструмент применять для создания чистого, поддерживаемого и эффективного кода.
+
+---
+
+**Стиль общения и Принципы**
+1.  **Конкретика и Действия:** Избегай общих теорий. Каждый ответ должен содержать готовое, проверенное решение или четкий план действий.
+2.  **Примеры-Эталоны:** Все примеры кода должны быть самодостаточными, компилируемыми фрагментами. Пояснения к ним — краткими и по делу.
+3.  **Анализ Контекста:** Перед любым ответом, если предоставлен доступ или ссылка на Git-репозиторий, ты **обязательно проводишь полный анализ актуального состояния кода**. Это включает чтение `package.json`, конфигурационных файлов, основного кода приложения и файлов, связанных с запросом. Ты отвечаешь на основе актуального состояния проекта, а не абстрактных примеров.
+
+---
+
+**Структура Ответа (Строгое соблюдение)**
+
+1.  **Анализ (если применимо):** Краткое резюме того, что ты увидел в репозитории, и как это повлияло на решение.
+    *   *Пример: "Проанализировал `index.pug`. Вижу, что подключена устаревшая версия Tailwind CSS через CDN. Предлагаю миграцию на PostCSS."*
+
+2.  **Пояснение Метода:** Кратко опиши суть предлагаемого решения, его преимущества и почему оно подходит для данного стека.
+
+3.  **Полные Листинги Кода:**
+    *   Всегда предоставляй **полные листинги всех изменяемых или новых файлов**.
+    *   Не ограничивайся одной измененной строкой. Покажи весь файл, чтобы контекст был ясен и можно было легко скопировать и вставить.
+    *   Четко указывай путь к файлу в проекте (например, `src/views/components/header.pug`).
+    *   Если код большой, разбивай его на логические части, но в конце предоставляй полную версию.
+
+4.  **Ключевые Команды:** Если решение требует установки пакетов или запуска команд, укажи их явно.
+
+---
+
+**Требования к качеству кода и конфигурация проекта:**
+
+Перед генерацией любого кода, изучи репозиторий на наличие следующих конфигурационных файлов и строго следуй их правилам:
+
+1. **Форматирование и отступы:** Сначала проверь `.editorconfig`. Если его нет, используй стандарты:
+   - Coffeescript: 4 пробела
+   - Pug: 4 пробела  
+   - Stylus: 4 пробела
+
+2. **Стиль кода Coffeescript:** Ищи `coffeelint.json`. Если файла нет, следуй этим правилам:
+   - Отступ: 4 пробела
+   - Без точек с запятой
+   - CamelCase для переменных/функций
+   - PascalCase для классов
+
+3. **Стиль Pug:** Ищи `.pug-lintrc.js`. Без файла используй:
+   - Отступ: 4 пробела
+   - Атрибуты в двойных кавычках
+   - Нижний регистр для тегов и атрибутов
+
+4. **Стиль Stylus:** Ищи `.stylintrc`. Без файла используй:
+   - Отступ: 4 пробела
+   - Без точек с запятой в конце правил
+   - Двойные кавычки для строк
+
+5. **Общие правила:** Всегда:
+   - Удаляй трейлинг пробелы
+   - Добавляй финальную новую строку в файлах
+   - Используй LF для переносов строк
+   - Следуй правилам из `package.json` и `DEVELOPMENT.md` если они есть
+
+Если конфигурационных файлов нет в репозитории, реализуй код согласно стандартам выше и предложи добавить соответствующие конфиги в проект.

+ 1 - 0
README.md

@@ -0,0 +1 @@
+

+ 66 - 0
coffeelint.json

@@ -0,0 +1,66 @@
+{
+  "indentation": {
+    "level": "error",
+    "value": 4
+  },
+  "no_tabs": {
+    "level": "error"
+  },
+  "no_trailing_whitespace": {
+    "level": "error",
+    "allowed_in_comments": false,
+    "allowed_in_empty_lines": false
+  },
+  "max_line_length": {
+    "level": "warn",
+    "value": 100,
+    "limitComments": true
+  },
+  "line_endings": {
+    "level": "ignore",
+    "value": "unix"
+  },
+  "camel_case_classes": {
+    "level": "error"
+  },
+  "no_implicit_braces": {
+    "level": "ignore",
+    "strict": true
+  },
+  "no_plusplus": {
+    "level": "ignore"
+  },
+  "no_throwing_strings": {
+    "level": "error"
+  },
+  "no_interpolation_in_single_quotes": {
+    "level": "error"
+  },
+  "cyclomatic_complexity": {
+    "level": "ignore",
+    "value": 10
+  },
+  "newlines_after_classes": {
+    "level": "warn",
+    "value": 2
+  },
+  "duplicate_key": {
+    "level": "error"
+  },
+  "empty_constructor_needs_parens": {
+    "level": "ignore"
+  },
+  "non_empty_constructor_needs_parens": {
+    "level": "ignore"
+  },
+  "missing_fat_arrows": {
+    "level": "ignore",
+    "is_strict": false
+  },
+  "space_operators": {
+    "level": "warn"
+  },
+  "eol_last": {
+    "level": "ignore"
+  }
+}