The First On-Chain and Open-Source Blogging platform.
discord server

Comment Management, Umami and Greenfield Integration, Batch Actions & More - xLog Weekly Summary #15

Our Gitcoin Grants Beta Round is now live! Please support us in building an on-chain and open-source blogging community by contributing to the "Web3 Open Source Software" round. If this is your first time using it, you can also view the tutorial here.


Apologies for missing last week's summary due to a hectic development schedule. This biweekly summary encompasses the period from April 18th to May 2nd, resulting in more content than usual.

Fresh out the oven 🔥#

Comment Management#


🫶 Dive into seamless engagement by accessing the Dashboard -> Comments

Easily manage comments in the dashboard by viewing, liking, and replying to them all in one place.

Code changes: @diygod 3351a82

Umami Cloud Analytics Integration#

Besides Google Analytics, we now offer support for Umami Cloud Analytics. To enable it, enter your Umami Cloud Analysis ID in Dashboard -> Settings, and the data collection will commence.


Code changes: @kev1n8w-3605 #476

Greenfield Integration#


We are excited to announce our integration with BNB Greenfield, enhancing data security and ownership by utilizing decentralized open-source storage chains like Greenfield.

From now on, newly published or modified posts and site configs will be simultaneously uploaded to both IPFS and Greenfield. The addresses for these uploads can be found at the bottom of each page.

Code changes: @diygod @candinya eede2c7

Batch Post Actions#


We've introduced batch actions support in the post list under Dashboard -> Posts/Pages, making it easier to convert and delete multiple posts simultaneously.

Code changes: @candinya #431

Enhanced Table of Contents Formatting#

Bold Italic Strikethrough Rn(Math)R_n(Math)#


We now offer advanced formatting options in the table of contents, including bold, italic, strikethrough, mathematical expressions, and more for a visually appealing presentation.

Code changes: @birdgg #430 & @iwsr-657 #382

Enhanced RSS Feeds#

While email subscriptions are a viable option, we recommend using RSS feeds for greater control and flexibility. We currently support the following RSS feeds:

By default, these feed addresses are in JSON Feed format. To use the traditional RSS format, simply add ?format=xml to the URL.

Code changes: d1a6c22 & 9beab8c

Undo Likes#


To undo a like, simply click the like button again. This will display an option to revert your previous action. Keep in mind that both likes and undo likes will remain recorded on the blockchain.

Code changes: @candinya #429

Performance Optimization#

It has been a while since the last performance optimization was specifically carried out, resulting in a decline in xLog's performance. To address this issue, we have implemented several optimizations this week.

However, these improvements are not sufficient, and we will continue to work on enhancing performance next week.

Code changes:

  • @innei-4525 refactor: codemirror editor #366
  • @daidr feat: debounced editor preview #372
  • @innei-4525 refactor: reduce rerendering in editor edit #389
  • @daidr feat: memorized markdown components #411
  • @diygod feat: disable refetchOnWindowFocus for home feed 65ec562
  • @innei-4525 feat: virtual list support for infinite list #439

Streamlined Dependencies#

We have eliminated certain non-essential dependencies to enhance performance and simplify maintenance.

Code changes:

  • @diygod feat: remove dependency Unidata #473
  • @enpitsulin chore: remove axios #469
  • @diygod chore: remove unocss edaa890
  • @diygod remove vitest d28faae

Enhanced Accessibility#


We've made significant improvements to xLog's accessibility, greatly benefiting specific user groups.

Code changes:

  • @doma-6565 perf(a11y): add focus-visible outline to BlockchainInfo #448
  • @doma-6565 perf(a11y): add focus outline to SiteHeader buttons and links #449
  • @doma-6565 perf(a11y): add focus-visible outline to posts list #481

Additional Updates#

  • @lv777: Added page URL hash support (#364)
  • @daidr, @diygod: Implemented confirmation for post/page deletion (#367, b1a880c)
  • @suemor: Disabled submit button when comment input box is empty (#369)
  • @sxzz: Removed markdown for summary (#380)
  • @diygod: Optimized Twitter sharing copy (d2aeec9)
  • @innei-4525: Fixed XSS vulnerability (#384, 9f0ef03, 8aefa78, c7bc118)
  • @diygod: Ignored WalletDisconnectEvent (5e5b6d1)
  • @diygod: Disabled SingleDollarTextMath (46013a5)
  • @diygod: Added iTunes RSS support (aa7e0c3)
  • @diygod: Used base64 to load custom CSS (748f0b1)
  • @xinbao: Added Xiaoyuzhou support (#402)
  • @birdgg: Used Pangu to add padding between Chinese and English text (#413)
  • @diygod: Preserved white space and line breaks in description (c8a2cd8)
  • @innei-4525: Implemented FAB container and "Back to Top" FAB button(#415)
  • @diygod: Enabled more HTML restrictions in comments(347e10e)
  • @diygod: Filtered out already followed users before following all(cc01209)
  • @diygod: Added subdomain check(16ba0c5)
  • @candinya: Added support for returning back home in dashboard(#435)
  • @runjuu: Made notification modal compatible with dark mode(#446)
  • @diygod: Added tip stats(0469a2c)
  • @enpitsulin: Registered j/tsx syntax highlighting(#455)
  • @birdgg: Filtered duplicate tags in editor(#457)
  • @birdgg: Replaced image http with https(207479b)

Community Projects#

We are delighted to witness various community projects enhancing xLog's capabilities.

xLog custom css debugger#

A convenient chrome extension for debugging custom CSS in xLog

Introduction post:
重构了 xLog custom css debugger
写了一个 chrome extension 尝试解决 xLog custom css 调试困难


Made by @birdgg

xLog card#


Introduction post:


Made by @alex-programer

Stay Connected with xLog#

If you have any suggestions or expectations, or just want to have a casual conversation, feel free to join our community or leave a comment below. Cheers! 🍻

Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.