Giter Club home page Giter Club logo

atomic-argu's People

Contributors

joepio avatar polleps avatar

Stargazers

 avatar

Watchers

 avatar  avatar

atomic-argu's Issues

Converting source data

Considerations

  • We have an export in this repo containing the current content
  • Ideally, the approach we use here can be re-used in other Argu -> Atomic Data projects
  • Most classes can be 'dumbed down' a bit, we could probably consider Updates, Threads, and more as simple Article resources with a name, description and a date.
  • We need some way to deal with attachments.

Approach

  • Use the .json file as source
  • For a bunch of white listed classtypes, loop over all resources
  • Map the props to corresponding atomic data properties
  • Give all the Article class mentioned above
  • Use the URL path to create local-id values
  • Generate a new .json file
  • Import using Atomic Data Importer

Add Argu sales page

  • Import existing blog posts from Argu
  • Explain Atomic-Argu
  • Redirect edam_volendam

Add search bar

Use @tomic/lib's search features to build a basic full-text search interface. Should probably re-use the article view for the results.

  • It works
  • It looks good
  • It has a loading state
  • It has a no hits state
  • It works on mobile phones

Commenting feature

One of our customers would like to keep the discussions feature from Argu. For them, it is not essential to have a registration step, but it is essential that the comments can be managed by their employees. Therefore, it would be preferable to use Atomic to store the comments.

So how would this work?

One Comments collection as parent

  • We create one Comments collections. This only shows comment resources
  • We create a sveltekit component for a Comment form. This has a description and a target (= where the comment will be placed). The parent is always the Comments collection.
  • We create an Invite that targets the Comments collection. That way, users can only create comments in that collection.
  • We retrieve Comments for each resource by querying for target: resource, where resource is the Article. Ideally we also filter by parent, so we don't include Comments from other drives, but in this case I don't think that's essential, since the resource is publicly appendable.
  • When creating a resource, we also set write rights on the Comment, which enables editing.

Missing data in initial render

During first render (e.g. here), we see no cover images. These appear on the second render.

No cover images

So I suppose server side rendering does not know about the cover source url. We can disable JS to see this same screen.

I'm assuming the loadResourceTree function should fix this behavior. However, this looks like it should already fix the issue, but it does not:

	await loadResourceTree(subject, {
		[properties.parent]: true,
		[domain.pages]: true,
		[domain.coverImage]: true,
		[domain.articlesCollection]: {
			[properties.collection.members]: {
				[domain.coverImage]: true
			}
		}
	});

Perhaps I misunderstood the function, or perhaps the function isn't quite working as expected.

Custom fonts

E.g. drechtstedenenergie wants 'Roboto Condensed', sans-serif.

Dealing with older browsers

A potential customer just noticed that the menu bar does not appear on her older S20 phone. I'm suspecting we might need to polyfill something...

Edit: yes, it's structuredclone.

Screenshot 2023-04-13 at 09 56 04

  • I think the solution is to do all sorts of polyfills. Doesn't vite already do this?
  • Also, we need something like bugsnag to monitor stuff like this
  • Can the menu be server-side rendered?
  • We should probably show an error if JS fails for some reason

Multi-site (deploying, moving away from Github Pages)

We currently use Github pages for wonenatthepark.nl. This has generally been a success. However, we want to host more pages. Github pages only works for one domain.

We could use Netlify, which we're already using for Ontola.io (nextJS).

We could use CloudFlare static pages, which we're already using for some DNS stuff. (adapter)

Considerations:

  • Deploying should be very simple (either CI action or CLI?)
  • HTTPS support
  • Easy to manage
  • Cost (low bandwith - free options are available)

Todo:

Clicking on search result navigates to resource subject

When you click on a search result it will navigate you to the actual subject of the resource instead of the atomic-argu site version. So you'll end up in the databrowser.

To reproduce:

  1. Go to: https://argu.nl/
  2. Search for something
  3. Click on search result (Also happens when navigating with keyboard)

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.