34c82f3dca
- backend/tools/qrcode_gen.py: POST /api/qrcode/generate, returns base64 PNG (qrcode[pil]) - backend/tools/markdown_tool.py: POST /api/markdown/render, extensions: tables/fenced_code/nl2br - backend/tools/colorconverter.py: POST /api/color/convert, HEX/RGB/HSL via colorsys (no deps) - backend/tools/jsonformatter.py: POST /api/json/format, returns formatted JSON with line/col errors - backend/tools/regextester.py: POST /api/regex/test, flags i/m/s, returns matches with positions - QrCodeTool.jsx: generate + download PNG button - MarkdownTool.jsx: split editor/preview, debounce 500ms, white preview bg - ColorConverterTool.jsx: color swatch preview, per-format copy buttons - JsonFormatterTool.jsx: indent toggle 2/4, pre result box with copy - RegexTesterTool.jsx: debounce 400ms, yellow match highlighting, flag checkboxes - All blueprints registered in app.py; qrcode[pil] + markdown added to requirements.txt Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
13 lines
510 B
Python
13 lines
510 B
Python
from .md5 import md5_blueprint
|
|
from .hasher import hasher_blueprint
|
|
from .base64tool import base64_blueprint
|
|
from .jwtdecoder import jwt_decoder_blueprint
|
|
from .passwordgen import passwordgen_blueprint
|
|
from .timestamp import timestamp_blueprint
|
|
from .textdiff import textdiff_blueprint
|
|
from .qrcode_gen import qrcode_blueprint
|
|
from .markdown_tool import markdown_blueprint
|
|
from .colorconverter import color_blueprint
|
|
from .jsonformatter import json_formatter_blueprint
|
|
from .regextester import regex_blueprint
|