Code Monkey home page Code Monkey logo

blot's People

Contributors

aupiff avatar aurnik avatar datashaman avatar davidmerfield avatar dependabot[bot] avatar freetonik avatar github-actions[bot] avatar nicktoumpelis avatar nicolasmtjt avatar pinjasaur avatar stefan-yas avatar worm-emoji avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blot's Issues

Sync hangs while parsing poorly formatted YAML

Hi @davidmerfield. I'm really enjoying using Blot, thank you for all the hard work on it!

I have some files with a poorly formatted YAML front matter that seem to cause the syncing to hang on the backend. When one of these files was included in my git commit, the "syncing" message stays stuck on the first file it scans that has the bad YAML:
image

This appears to block the whole commit from being synced. It then takes a few minutes before the backend starts noticing new commits again, I'm assuming there's some timeout that stops the hung syncing process.

Below are contents of an example .md file that successfully reproduces the issue for me.

---
tags:
 status: publish
 - test
---

# test-post

state 4

This is a small issue that isn't a blocker for me as I've fixed my YAML formatting, but when it occurs it stops syncing for a few minutes and it's difficult to discover the reason. It may be good to fix this to avoid any confusion for others. Let me know if I can provide any other information!

Blot.im seems to be down

Hi - I'm aware this isn't a code related issue (probably) but any information on what's going on and when sites might be available again would be great.
Thanks.

How do I host the website on my own server?

Hey, I want to host the website that's generated by Blot on my own server. I wondered if it's possible to use Blot with Node.js on my local machine to "generate" the blog, whose files would be later uploaded to the hosting provider. I like the concept of layouts and markdown posts that Blot is using so I wanted to ask if it could be done like that. I think that noone has asked this question because it's a fairly easy process to do (or maybe it isn't).

Ghost importer dependencies missing

// I used the Ghost importer for blot.im ; i'm not super used to NPM, took me a while somehow to manage to get all the dependencies even with 'npm install' ... many were always missing, i had to fiddle a bit but i can't tell you precisely more & it may be my own fault?

!! Anyway: in the end, the import worked except it had a hardcoded domain name i had to modify when trying to download all the images from my Ghost blog.

Possible problem with layout tag CSS on blog template

The layout tags are described here.

There's an example of them in use in the Layout & typography post here.

The source for that post is here.

There's a possible problem with the layout CSS.

Some examples:

  • This should be in the left margin, but it's in the right.
  • This should be wide, but it's pushed slightly to the right, and the right edge is off the screen.
  • These should be wide, but are off centre to the right.

I checked Chrome, Edge, Firefox and Safari, all on Mac.

Default time of publication

When setting up a date via the "Date:" metadata at the beginning of a post, it sets the time too, and apparently at midnight in one of the US timezones. On the blog it doesn't matter, but the RSS entry can sometimes appear 10 hours "earlier" therefore being displayed with items long read before.

Right now to avoid this I don't set a date when I publish (so everything is at the right time), but then I lack this metadata for future proofing my files.

Add WebDAV client

This is a feature suggestion without any urgency.

I think it would be great if Blot could be used with, say, Nextcloud as a client, for it can be self-hosted (to be independant of the corporate entities behind Dropbox and Github) and is still near as easy for non-technical users. Nextcloud supports the Webdav protocol, so implementing that in Blot would probably be the way to go.

(On this occasion: Blot is great, thank you! We are currently using it with the Dropbox client for a progress blog of an art project. It has saved us a lot of time, and it is a pleasure to use both for people with and without an IT background.)

Error in the developer documentation

I am not certain if this is the right place to report this, but I noticed an error in the developer docs:

  • URL: https://blot.im/developers/reference
  • Location of error: at the very bottom of the page (see screenshot)
  • Expected: I believe that the label should read "A list of all your site's tags" or something along those lines

screen shot 2019-01-21 at 9 58 36 am

Kissr competitor is offline

My sure where/if the code for the blot website is located.

But the kissr competitor seems to have gone offline.

Docs may want to be updated.

Excerpt generator locks main process

Around the middle of last night I received reports of intermittent 502 gateway errors. This indicates that the node.js application responsible for Blot was down (as opposed to the NGINX reverse proxy which sits between Blot and the internet).

I checked the logs and determined that Monit, the service used to check if Blot is responsive, was restarting the node.js application because its requests to Blot's health endpoints were timing out. I streamed the log file for Blot's sync process and ran this command to watch the response time for the sign-up page (which is not cached by NGINX and generated by the node.js server for each request):

watch -n1 "curl -o /dev/null -s -w '%{time_total}'  https://blot.im/sign-up"

It seemed Blot would sometimes take up to 30s to process a single request. Something was blocking the main process. I cross referenced the long response time with items in the sync queue and narrowed the suspects down to a particular HTML file, which I'll refer to as bug.html, containing a relatively large table (thousands of cells). Amusingly enough, the user was running a script which updated bug.html every 60 seconds. I emailed the customer to explain the issue and temporarily disabled the customer's blog.

I downloaded a copy of bug.html and messed around with it in my development environment. Here's the key output from the debug log:

...
  blot:models:entry:build:prepare /bug.html Generating makeSlug +0ms
  blot:models:entry:build:prepare /bug.html Generated  makeSlug +0ms
  blot:models:entry:build:prepare /bug.html Generating tags +0ms
  blot:models:entry:build:prepare /bug.html Generated  tags +1ms
  blot:models:entry:build:prepare /bug.html Generating  teasers +11s
  blot:models:entry:build:prepare /bug.html Generated  teasers +11s
  blot:models:entry:build:prepare /bug.html Generating decoding +0ms
  blot:models:entry:build:prepare /bug.html Generated  decoding +0ms
...

The function which generates the 'teaser' or excerpt for each blog post was taking 11s and locking the entire server in the process, since it's synchronous code.


My planned solution is to set up a queue to build blog posts across multiple processes, distinct from the main web sever. Then I will attack the specific bug in makeTeaser.

Incorrect importer instructions

The instructions for running the importer aren't right for squarespace and aren't clear in general. This is what worked for me:

  1. Step one in the readme is correct and clear enough.
  2. Install the dependencies from the root of the Blot project via npm install
  3. Copy the xml file exported from Squarespace to the Blot/app/dashboard/routes/importer/sources/squarespace folder, renaming it to dump.xml
  4. Run the import script from the Blot/app/dashboard/routes/importer/sources/squarespace folder via node index.js dump.xml output
  5. Your blog posts in markdown are located in Blot/app/dashboard/routes/importer/sources/squarespace/output/

Git client 413 error Entity Too Large

Hi, not sure this is your prefered place for this kind of errors/bugs or if you had prefered i'd send you an email.

After using the Ghost importer I initially tested to git push one of the posts to blot.im with the structure "Posts/YYYY/MM-DD-title" containing one 'post.md' + two JPGs, this worked without problem.

(I renamed all the .TXT files from the importer as .MD)

But when trying to git push all my posts (once i cleaned them up a bit) or only a random-ish selection of them i got this error:

Counting objects: 208, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (206/206), done.
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request >Entity Too Large
fatal: The remote end hung up unexpectedly 117.00 KiB/s
Writing objects: 100% (208/208), 36.21 MiB | 5.99 MiB/s, done.
Total 208 (delta 0), reused 0 (delta 0)
fatal: The remote end hung up unexpectedly
Everything up-to-date

Given that my archive/posts contains many images, i double-checked there weren't too many big ones (i remember seeing something about an error related to file sizes), i usually scale them down & better compress them to ~1024px etc to avoid full size ~5mb JPGs. So i double-checked and each image is way below <1mb generally. Most often they are ~100 to ~200kb

Same error in the end. I tried several times to git rm -r *, start again, etc

I tried the Dropbox client today and in this case there was no problem to upload everything.

I removed everything from Dropbox, gave it time for blot.im to sync. Disconnected the Dropbox client & set up the Git client/repo again in a new folder. Same error.

Could that be a similar NGINX file size limit error (given it's trying to push ~36mb at once) or something else?

(The git client for my use in this case may not be the best if the posts generally contain more images than text i guess.. ?)

RSS Feed is not compatible with Micro.blog

When parsing Blot's RSS feed, micro.blog is running into encoding issues that seem specific to Blot.

See https://micro.blog/manton/126420 for a brief discussion and this comment by the author, Manton...

Yes, this is a known issue because of the way Blot encodes URLs in RSS feeds. I've never seen an RSS feed that encodes URLs like this before, so it will need to be worked-around in Micro.blog. Hope to get to it soon.

It's not clear to me if it's a problem on the feed's end or the way Micro.blog is parsing things, but thought I'd mention it.

CORS same origin is blocking plex-sans

Checked out my site today (www.tillmanjex.info) and the text was rendering with times (i think).

Checked the developer console and it looks like plex-sans is being blocked by same origin policy and not being loaded from Blots CDN.

Screen Shot 2023-05-07 at 19 06 55

GET
https://blotcdn.com/fonts/plex-sans/bold.woff2?version=1759ad&extension=.woff2
CORS Missing Allow Origin

	
GET
	https://blotcdn.com/fonts/plex-sans/bold.woff2?version=1759ad&extension=.woff2
Status
404
Not Found
VersionHTTP/1.1
Transferred428 B (14 B size)
Referrer Policystrict-origin-when-cross-origin
Request PriorityHigh

    	
    Blot-Cache
    	proxied
    Connection
    	keep-alive
    Content-Length
    	14
    Content-Type
    	text/html; charset=utf-8
    Date
    	Sun, 07 May 2023 17:03:34 GMT
    Server
    	openresty
    Via
    	1.1 b61409af370dbf025ffc910b1252c65e.cloudfront.net (CloudFront)
    X-Amz-Cf-Id
    	IeM2tggsZJdEbwihYOHj-_jhIjxrgIDwaUjyM7c6reIOy-iLHozw4g==
    X-Amz-Cf-Pop
    	AMS54-C1
    X-Cache
    	Error from cloudfront
    X-Frame-Options
    	SAMEORIGIN
    	
    Accept
    	application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
    Accept-Encoding
    	identity
    Accept-Language
    	en-GB,en;q=0.5
    Connection
    	keep-alive
    Host
    	blotcdn.com
    Origin
    	https://www.tillmanjex.info
    Referer
    	https://www.tillmanjex.info/
    Sec-Fetch-Dest
    	font
    Sec-Fetch-Mode
    	cors
    Sec-Fetch-Site
    	cross-site
    Sec-GPC
    	1
    User-Agent
    	Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/112.0

Title property is being displayed twice on entry page.

So I have a test post from which I only want to display the content.

In my entry.html file I have the following markup.

I have only injected the {{title}} once within the h1.

`

      <h1 class="entry-title">
        {{title}}
      </h1>

      {{#date}}
      <p class="entry-date">
        <small>{{date}}</small>
      </p>
      {{/date}}

      {{{body}}}

    </article>`

The issue: {{{body}}} is outputting the post title, as well as the content.
I have already displayed my title in the h1 - I do not need it to be shown again.
Only 'The content...' should be output

Perhaps I'm missing something really simple here, and the issue is in my folder set up via Dropbox.

Dropbox screenshot:
Screenshot 2020-05-28 at 16 49 59

Chrome screenshot:
Screenshot 2020-05-28 at 16 53 19

Pages added twice to archive after migrating from git to Dropbox

After moving my blog from git to Dropbox, the pre-existing files were not added to the Dropbox folder. I uploaded them manually to it and now the the archive contains two links to each post both pointing to the same page.

screen

Removing / adding an underscore to the .md files in Dropbox removes the duplicate links, but the pages are also removed and the links point to nothing.

Improvements to public site

Post-deploy:

  • Clean up error messages in logs for public site
  • Add 404 log
  • Tooltips for lock and CVC on sign up page
  • Loading state for submit button on sign up page
  • Unify dashboard header style post-payment
  • Navigation collapse on mobile devices
  • Fix formatting guide
  • Featured sites on homepage are generated automatically
  • Collapsible sidebar
  • Fix logged out page
  • Pixel perfect logo SVG (no blur)
  • Logo spacing from Chrome tab
  • Fix <title> tags across site
  • Upload new Twitter avatar and background
  • Tell this person that there is now documentation on how to mirror a repo to GitHub
  • Favicon with white background for folder
  • HTML minifier
  • CSS comporessor
  • JavaScript minifier
  • Custom video player on index page

Content:

Code:

  • Make formatting guide searchable
  • Make reference page searchable
  • Generate high quality optimized favicons from new logo
  • Extract SVG of logo which can be used to produce hover effects, and on black
  • Write build scripts which can be run to produce results checked into git
    • inline css in blot.css
    • inline css in katex.css?
    • base 64 encode and inline small images on homepage
    • Optimize all images in image directory

  • Ask for critiques

Readme

Hi,
Could you update your Readme file,
giving an example on how to setup blot inside dropbox and making a simple blog webpage?
There is nothing in Readme file, showing these steps...
:(

Draft outline of the Basic HTML/CSS Guide

Hey @davidmerfield ,
below is a draft outline of the proposed HTML/CSS guide for Blot users. The goal is to quickly cover the basics and provide starting points for further self-exploration. By the end of the guide, the user should be able to make basic HTML pages with styling, and at the very least, be able to ask questions in order to learn about more advanced topics.

Let me know what you think. Thanks!


  1. Intro
    • What's a browser?
    • Browser as text file viewer
    • Basic HTML for styling text files
    • Interactive demo in sandbox
    • View source of current page, web inspector, change something and see result (instructions for 3 major browsers)
    • Conclusion: HTML as styling language, browser as HTML renderer
  2. HTML
    • Structure of tags
    • Attributes (examples: links and images)
    • Hierarchy, embeddability rules
    • Interactive demo in sandbox
    • Where to look for tags (MDN, etc)
    • Conclusion: HTML as infinitely growable document
  3. CSS
    • Explained via necessity for more styling
    • Inline style
    • <style> tag
    • Interactive demo in sandbox
    • Typography, accessibility, contrast
    • Media queries explained via necessity for mobile/desktop responsivity
    • Built-in default styling of browsers
    • Conclusion: CSS as addon to HTML
  4. Proper structure
    • Full HTML5 structure
    • Meta tags explained via necessity to convey hidden information to the browser (not the user)
    • Larger interactive examples
  5. Where next?
    • Brief overview of layout stuff (flexbox, css grid, etc)
    • Brief overview of CSS frameworks
    • Brief overview of JS

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.