Easy Steem Editor: Cool Update Phase 1,2,3

in Steem Dev7 days ago

Easy Steem Editor: Cool Update Phase 1,2,3

Updaejpg
duck.ai


Preview > https://steem-writer-pro.pages.dev/

Project Status Update

The project is moving forward steadily. All code has been pushed to GitHub but remains private during the development phase. The preview page is hosted on Cloudflare Pages for enhanced reliability.

Current Status: Development is focused on a modern React architecture rather than plain HTML.


Phase 1: Legal Media Integration

Completion: 90%
(Pexels and Attribution are 100% complete; Pixabay support is reserved in the UI but requires API integration.)

  • API Integration: Search functions directly within the sidebar (PexelsService).
  • Key Security: Pexels keys can be stored in two ways: as plain text (in localStorage) or encrypted in the Vault (SecurityService.savePexelsKey). This is a unique security feature.
  • Auto-Attribution: When inserting a photo via insertPexelsImage, a caption is automatically generated:
    • Implemented via templates in App.tsx.
    • Includes links to the author and the Pexels platform.
    • Users can choose to embed the link directly in the image or as a separate footer.

Phase 2: Optimization & Features

Completion: 70%
(Tables, tags, languages, and drafts are functional. Remaining tasks: active calendar/publication schedule and final polishing of table imports.)

  • Table Import: The processTableImport module is functional.

    • Issue: Regarding "collapsed" cells—the current logic is simple (split('\t') or split(',')). It may misalign if the source contains empty columns.
    • Future Solution: Add a check for row array length relative to the header and pad with empty values | | to prevent shifting.
  • Drafts/Templates: Implemented via STORAGE_KEY_DRAFTS and STORAGE_KEY_TEMPLATES. Works locally using IndexedDB and localStorage.

  • Tag Lists & Groups: TagGroup functionality is implemented, allowing users to create custom groups for quick insertion.

  • Multi-language Support: UK/EN toggle implemented with a full UI translation.


Phase 3: Direct Image Upload (SteemitImages)

Completion: 95%
(Works on the web page via SteemKeychain and WhaleVault. No need to manually enter keys or register a separate account for signing. Note: Bulk uploads via Keychain may trigger multiple signature requests.)

  • Mass Upload: The handleFileUpload function allows multi-file selection with a processed queue and progress indicator.
  • Upload Technology: Uses the official Steemit schema:
    1. Generates a text challenge.
    2. Signs the challenge via Keychain or Vault.
    3. Sends a POST request to steemitimages.com.
  • Vault (Smart Local Wallet):
    • Security: Uses AES-256 (GCM) with PBKDF2 (600,000 iterations—a very high security standard).
    • Convenience: Enter your PIN once to unlock the Master Key into memory, enabling image uploads without constant Keychain popups. This is significantly more efficient for bulk uploads.
  • Final Step: Completely replace remaining legacy Steem functions with dsteem.

Overall Project Progress: ~85%


📋 Summary

  • What was updated? The transition to the dsteem library is underway. It is connected via CDN and used in SecurityService and App.tsx for PrivateKey operations and post broadcasting.
  • Main Achievement: A Hybrid Authorization System. Users can use Keychain for publishing (key security) and the Vault for images (bulk upload convenience). This is a sophisticated solution for Steem applications.
  • Next Goal: Toolbar optimization and "Smart Table" formatting to prevent misalignment.

Additional Features (Beyond the Original Plan)

  • Floating Formatting Bar: Contextual tools appear directly over highlighted text.
  • Split Post: Automatically split very long texts into multiple parts for serial publications.
  • Smart "Clean Word" Stats: An algorithm that excludes Markdown code, links, and attribution when counting words to show the real content volume.
  • Focus Mode: Full-screen preview capability via requestFullscreen.
  • Community Presets: A pre-set list of Steem communities (Ukraine, Venezuela, etc.) with tag auto-completion.
  • Vault-Protected Pexels Key: Encrypting the API key with the same Master Key that protects the Posting Key.
  • Markdown Escape \ : A utility to quickly protect Markdown characters from rendering.
  • Quick Lists: Select multiple lines of text and click "List" to automatically apply bullet points to each line.
  • DOMPurify: An HTML sanitizer for enhanced security, ensuring third-party code cannot be executed within the preview.