Lemmydocs 7:4 – Thou shall create a blog

Features

  • Linked to a user using Lemmy’s API, no authentication
  • Host content on any instance
  • Category filters: Set one or more community as the categories
  • Easy to adapt to your profile
  • One page constraint
  • Anchor navigation and permalinks
  • Responsive
  • Dark / Light mode
  • No cookies or tracking
  • Interactive “about me”
  • No backend: serving a single lightweight page that can be hosted anywhere, including GitHub
  • HTML, CSS and ES6 JavaScript. That’s it.

TODO

  • Possible compatibility issues with older iOS devices. Let me know if you encounter an issue! I’ll be cleaning up the code in the meantime.
  • The only class not written by me is the markdown-html translation layer for which I’m using snarkdown. It does so using regex queries. As to not completely re-invent the wheel I’ve forked it for this purpose, but I’d like to write one myself.

GitHub | ./Martijn.sh > Blog

    • kernelle@0d.gsOP
      link
      fedilink
      English
      arrow-up
      9
      ·
      10 days ago

      That requires the running and maintenance of a federated instance, which is not easy or cheap. Doing it like this allows anyone to make a BlogOnLemmy by serving but a single webpage, no extra server cost at all.

        • kernelle@0d.gsOP
          link
          fedilink
          English
          arrow-up
          3
          ·
          10 days ago

          The open web and API’s are designed for this purpose, and don’t think any instance would ever follow reddit and close up theirs.

          I’m all for donating to your instance owner, altough I’d be surprised if any would mind their API being used this way. Giving credit where credit is due.

  • BlueÆther@no.lastname.nz
    link
    fedilink
    English
    arrow-up
    5
    ·
    10 days ago

    I was just thinking about this this morning as we will be going on a 6 week roadrip around NZ and I cant be bothered to stand up my wordpress server again

    • kernelle@0d.gsOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      10 days ago

      Feel free to use the code in any way you like, and enjoy your trip!

  • will_a113@lemmy.ml
    link
    fedilink
    English
    arrow-up
    4
    ·
    10 days ago

    I’m a little lost. You mention hosting content on any instance, or on GitHub. How does that work? And if your content is elsewhere what is Lemmy doing? Authx?

    • TORFdot0@lemmy.world
      link
      fedilink
      English
      arrow-up
      10
      ·
      10 days ago

      A lot of static site blog generators use markdown to create posts. Lemmy also uses markdown for its’ post formatting. From my understanding what OP has done is that he made this post on Lenmy and has created a front end that basically retrieves the given post from Lemmy and displays it with a more traditional blog style CSS as well as a few other pages that aren’t hosted on Lemmy.

      • kernelle@0d.gsOP
        link
        fedilink
        English
        arrow-up
        10
        ·
        10 days ago

        This is in it’s simplest form a blog frontend for Lemmy indeed!

      • will_a113@lemmy.ml
        link
        fedilink
        English
        arrow-up
        5
        ·
        10 days ago

        Ok so you’d literally be making a regular Lenny post to some particular community on some particular instance in that case, right?

        • kernelle@0d.gsOP
          link
          fedilink
          English
          arrow-up
          4
          ·
          edit-2
          10 days ago

          Exactly, in this case the actual post is this one and posted it here as a x-post.

          Edit: I own my instance, but you don’t have to own one in order to deploy this blog frontend.

    • kernelle@0d.gsOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 days ago

      I sepperate the hosting of the content and the page itself. With a website you do need to still be serving a html page, because it has no backend the page can be served by GitHub for example.

      In theory you don’t have to touch the website anymore, so you use Lemmy as your markdown frontend.

      A constraint like this ensures someone can host their BlogOnLemmy without paying for anything like hosting space or running the instance themselves.

  • onlinepersona
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    8 days ago

    A blog entry on how it works and what it does at a high level could be nice. I’m not sure what I’m looking at, but there must be some API call to Lemmy and it’s probably happening on the server due to CORS; not sure how this would work just in the browser if the Lemmy instance has CORS setup…

    Edit: OK the instance 0d.gs does in fact not have CORS 😮 That’s a little concerning…

    Hold up, neither does programming.dev? Uh… @[email protected] and @[email protected] is that safe? I’m not a security expert but doesn’t this allow for cross site attacks?

    Anti Commercial-AI license

    • kernelle@0d.gsOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      8 days ago

      I’ve noticed that a more detailed writeup is warranted! So I’ll be working on that.

      CORS is enabled on lemmy, you have to send the ‘Origin’ header in order to get the Access-Control headers. Which allows cross-origin for simple requests. No added headers, cookies or other data. So all API calls are made in JS by your browser.

    • kernelle@0d.gsOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      9 days ago

      Good question, it’s a design choice. Being attached to my name I had no interest in needing to moderate which comments should and shouldn’t be showing up under my name. There is a direct link to the posts on lemmy where they can be interacted with.

      A second concern is XSS, with my own content I have no worries.