or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Syncing
xxxxxxxxxx
Clutter AD4M integration Design Outline
The following document outlines what I see as the major consideration in integrating ad4m with clutter. I'm also attempting to generalize these considerations as they may be useful patterns for ad4m in general.
encapsulated expression Icons
I'm currently working on a default icon for mew expressions. The goal here is to create an icon that encapsulates the basic mew interactions (lick, reply, share, mewmew). This way, any ad4m compatible app can recognize the url and replace it with the default icon (thus the mew can be interacted with from Perspect3ve, flux, etc.) As of now, I have a basic
Icon.svelte
andConstructorIcon.svelte
component (both thereply
andmewmew
buttons display theConstructorIcon
component).- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →Ideally, clicking on the
Publish Mew
button in the constructor would internally be able to make use of thecreatePublic
function inadapter.ts
. The same would be for theshare
button.The current approach (from the ipfs-notes language) is to pass in a
commitExpression
anddiscard
function into theConstructorIcon
component, which requires UI developers to define their own function to pass in to the component, even though it should always bead4m.expression.create()
.I'm wondering if it would be possible (and if it is something we should explore) to not need to pass in these functions as parameters, and instead define them inside the component?
Another option would be to only pass in an
Ad4mClient
instance to the component, where the functions could still be encapsulated inside the components (as opposed to calling functions defined withinadapter.ts
.The other aspect of this is the
lick
button, which does not create an expression but calls a zome function of the DNA which stores the expressions. Is it possible to getLanguageContext
fromAd4mClient
so that the icon can call dna zome function likeLanguageContext.Holochain.call()
? In this case we would be calling either thelick_mew
orunlick_mew
zome function.language icon development scaffolding
The idea here is to create a basic we app that can be spun up quickly during development and the expression icon can be injected into the web page.
There are a few considerations for this:
bundle.js
and then the icon can be injected as a web component in a similar way as it is in perspect3veextend clutter dna to store ad4m expression metadata
Currently, the clutter ad4m language does not handle ad4m expression metadata. The goal here would be to extend the dna entry structures to work inject ad4m metadata. Ideally, being flexible enough to work with out without ad4m metadata.
integrate nix-shell conductor with ad4m executor conductor
Currently, nix-shell and ad4m cli spin up separate holochain conductors. For clutter development purposes, it may be helpful to integrate the two so that the same conductor is being used.