Unverified Commit bcb88432 authored by Johnny's avatar Johnny Committed by GitHub

chore: implement stringify markdown nodes endpoint (#3688)

parent 7c9e54af
...@@ -238,15 +238,15 @@ paths: ...@@ -238,15 +238,15 @@ paths:
type: string type: string
tags: tags:
- MarkdownService - MarkdownService
/api/v1/markdown/parse: /api/v1/markdown/node:restore:
post: post:
summary: Parses the given markdown content and returns a list of nodes. summary: RestoreMarkdownNodes restores the given nodes to markdown content.
operationId: MarkdownService_ParseMarkdown operationId: MarkdownService_RestoreMarkdownNodes
responses: responses:
"200": "200":
description: A successful response. description: A successful response.
schema: schema:
$ref: '#/definitions/v1ParseMarkdownResponse' $ref: '#/definitions/v1RestoreMarkdownNodesResponse'
default: default:
description: An unexpected error response. description: An unexpected error response.
schema: schema:
...@@ -256,18 +256,39 @@ paths: ...@@ -256,18 +256,39 @@ paths:
in: body in: body
required: true required: true
schema: schema:
$ref: '#/definitions/v1ParseMarkdownRequest' $ref: '#/definitions/v1RestoreMarkdownNodesRequest'
tags:
- MarkdownService
/api/v1/markdown/node:stringify:
post:
summary: StringifyMarkdownNodes stringify the given nodes to plain text content.
operationId: MarkdownService_StringifyMarkdownNodes
responses:
"200":
description: A successful response.
schema:
$ref: '#/definitions/v1StringifyMarkdownNodesResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/v1StringifyMarkdownNodesRequest'
tags: tags:
- MarkdownService - MarkdownService
/api/v1/markdown:restore: /api/v1/markdown:parse:
post: post:
summary: Restores the given nodes to markdown content. summary: ParseMarkdown parses the given markdown content and returns a list of nodes.
operationId: MarkdownService_RestoreMarkdown operationId: MarkdownService_ParseMarkdown
responses: responses:
"200": "200":
description: A successful response. description: A successful response.
schema: schema:
$ref: '#/definitions/v1RestoreMarkdownResponse' $ref: '#/definitions/v1ParseMarkdownResponse'
default: default:
description: An unexpected error response. description: An unexpected error response.
schema: schema:
...@@ -277,7 +298,7 @@ paths: ...@@ -277,7 +298,7 @@ paths:
in: body in: body
required: true required: true
schema: schema:
$ref: '#/definitions/v1RestoreMarkdownRequest' $ref: '#/definitions/v1ParseMarkdownRequest'
tags: tags:
- MarkdownService - MarkdownService
/api/v1/memos: /api/v1/memos:
...@@ -2855,7 +2876,7 @@ definitions: ...@@ -2855,7 +2876,7 @@ definitions:
memo: memo:
type: string type: string
title: "The related memo.\r\nFormat: memos/{id}" title: "The related memo.\r\nFormat: memos/{id}"
v1RestoreMarkdownRequest: v1RestoreMarkdownNodesRequest:
type: object type: object
properties: properties:
nodes: nodes:
...@@ -2863,7 +2884,7 @@ definitions: ...@@ -2863,7 +2884,7 @@ definitions:
items: items:
type: object type: object
$ref: '#/definitions/v1Node' $ref: '#/definitions/v1Node'
v1RestoreMarkdownResponse: v1RestoreMarkdownNodesResponse:
type: object type: object
properties: properties:
markdown: markdown:
...@@ -2909,6 +2930,19 @@ definitions: ...@@ -2909,6 +2930,19 @@ definitions:
properties: properties:
content: content:
type: string type: string
v1StringifyMarkdownNodesRequest:
type: object
properties:
nodes:
type: array
items:
type: object
$ref: '#/definitions/v1Node'
v1StringifyMarkdownNodesResponse:
type: object
properties:
plainText:
type: string
v1SubscriptNode: v1SubscriptNode:
type: object type: object
properties: properties:
......
...@@ -25,7 +25,7 @@ require ( ...@@ -25,7 +25,7 @@ require (
github.com/spf13/cobra v1.8.1 github.com/spf13/cobra v1.8.1
github.com/spf13/viper v1.19.0 github.com/spf13/viper v1.19.0
github.com/stretchr/testify v1.9.0 github.com/stretchr/testify v1.9.0
github.com/usememos/gomark v0.0.0-20240713015837-e5b687d3d637 github.com/usememos/gomark v0.0.0-20240714122951-35ed01b21822
golang.org/x/crypto v0.25.0 golang.org/x/crypto v0.25.0
golang.org/x/mod v0.19.0 golang.org/x/mod v0.19.0
golang.org/x/net v0.27.0 golang.org/x/net v0.27.0
......
...@@ -441,8 +441,8 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM ...@@ -441,8 +441,8 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/usememos/gomark v0.0.0-20240713015837-e5b687d3d637 h1:DTSf/z7oXyAJXk9bYaTHnRiLlHynWJ/ate9VKJn2awc= github.com/usememos/gomark v0.0.0-20240714122951-35ed01b21822 h1:4DQs0DJGaXLq+1eP6QfMkvcunyTVJ5OR7LK1cOm2imE=
github.com/usememos/gomark v0.0.0-20240713015837-e5b687d3d637/go.mod h1:7CZRoYFQyyljzplOTeyODFR26O+wr0BbnpTWVLGfKJA= github.com/usememos/gomark v0.0.0-20240714122951-35ed01b21822/go.mod h1:7CZRoYFQyyljzplOTeyODFR26O+wr0BbnpTWVLGfKJA=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
......
...@@ -7,17 +7,24 @@ import "google/api/annotations.proto"; ...@@ -7,17 +7,24 @@ import "google/api/annotations.proto";
option go_package = "gen/api/v1"; option go_package = "gen/api/v1";
service MarkdownService { service MarkdownService {
// Parses the given markdown content and returns a list of nodes. // ParseMarkdown parses the given markdown content and returns a list of nodes.
rpc ParseMarkdown(ParseMarkdownRequest) returns (ParseMarkdownResponse) { rpc ParseMarkdown(ParseMarkdownRequest) returns (ParseMarkdownResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/api/v1/markdown/parse" post: "/api/v1/markdown:parse"
body: "*" body: "*"
}; };
} }
// Restores the given nodes to markdown content. // RestoreMarkdownNodes restores the given nodes to markdown content.
rpc RestoreMarkdown(RestoreMarkdownRequest) returns (RestoreMarkdownResponse) { rpc RestoreMarkdownNodes(RestoreMarkdownNodesRequest) returns (RestoreMarkdownNodesResponse) {
option (google.api.http) = { option (google.api.http) = {
post: "/api/v1/markdown:restore" post: "/api/v1/markdown/node:restore"
body: "*"
};
}
// StringifyMarkdownNodes stringify the given nodes to plain text content.
rpc StringifyMarkdownNodes(StringifyMarkdownNodesRequest) returns (StringifyMarkdownNodesResponse) {
option (google.api.http) = {
post: "/api/v1/markdown/node:stringify"
body: "*" body: "*"
}; };
} }
...@@ -35,14 +42,22 @@ message ParseMarkdownResponse { ...@@ -35,14 +42,22 @@ message ParseMarkdownResponse {
repeated Node nodes = 1; repeated Node nodes = 1;
} }
message RestoreMarkdownRequest { message RestoreMarkdownNodesRequest {
repeated Node nodes = 1; repeated Node nodes = 1;
} }
message RestoreMarkdownResponse { message RestoreMarkdownNodesResponse {
string markdown = 1; string markdown = 1;
} }
message StringifyMarkdownNodesRequest {
repeated Node nodes = 1;
}
message StringifyMarkdownNodesResponse {
string plain_text = 1;
}
message GetLinkMetadataRequest { message GetLinkMetadataRequest {
string link = 1; string link = 1;
} }
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
...@@ -19,19 +19,22 @@ import ( ...@@ -19,19 +19,22 @@ import (
const _ = grpc.SupportPackageIsVersion8 const _ = grpc.SupportPackageIsVersion8
const ( const (
MarkdownService_ParseMarkdown_FullMethodName = "/memos.api.v1.MarkdownService/ParseMarkdown" MarkdownService_ParseMarkdown_FullMethodName = "/memos.api.v1.MarkdownService/ParseMarkdown"
MarkdownService_RestoreMarkdown_FullMethodName = "/memos.api.v1.MarkdownService/RestoreMarkdown" MarkdownService_RestoreMarkdownNodes_FullMethodName = "/memos.api.v1.MarkdownService/RestoreMarkdownNodes"
MarkdownService_GetLinkMetadata_FullMethodName = "/memos.api.v1.MarkdownService/GetLinkMetadata" MarkdownService_StringifyMarkdownNodes_FullMethodName = "/memos.api.v1.MarkdownService/StringifyMarkdownNodes"
MarkdownService_GetLinkMetadata_FullMethodName = "/memos.api.v1.MarkdownService/GetLinkMetadata"
) )
// MarkdownServiceClient is the client API for MarkdownService service. // MarkdownServiceClient is the client API for MarkdownService service.
// //
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type MarkdownServiceClient interface { type MarkdownServiceClient interface {
// Parses the given markdown content and returns a list of nodes. // ParseMarkdown parses the given markdown content and returns a list of nodes.
ParseMarkdown(ctx context.Context, in *ParseMarkdownRequest, opts ...grpc.CallOption) (*ParseMarkdownResponse, error) ParseMarkdown(ctx context.Context, in *ParseMarkdownRequest, opts ...grpc.CallOption) (*ParseMarkdownResponse, error)
// Restores the given nodes to markdown content. // RestoreMarkdownNodes restores the given nodes to markdown content.
RestoreMarkdown(ctx context.Context, in *RestoreMarkdownRequest, opts ...grpc.CallOption) (*RestoreMarkdownResponse, error) RestoreMarkdownNodes(ctx context.Context, in *RestoreMarkdownNodesRequest, opts ...grpc.CallOption) (*RestoreMarkdownNodesResponse, error)
// StringifyMarkdownNodes stringify the given nodes to plain text content.
StringifyMarkdownNodes(ctx context.Context, in *StringifyMarkdownNodesRequest, opts ...grpc.CallOption) (*StringifyMarkdownNodesResponse, error)
// GetLinkMetadata returns metadata for a given link. // GetLinkMetadata returns metadata for a given link.
GetLinkMetadata(ctx context.Context, in *GetLinkMetadataRequest, opts ...grpc.CallOption) (*LinkMetadata, error) GetLinkMetadata(ctx context.Context, in *GetLinkMetadataRequest, opts ...grpc.CallOption) (*LinkMetadata, error)
} }
...@@ -54,10 +57,20 @@ func (c *markdownServiceClient) ParseMarkdown(ctx context.Context, in *ParseMark ...@@ -54,10 +57,20 @@ func (c *markdownServiceClient) ParseMarkdown(ctx context.Context, in *ParseMark
return out, nil return out, nil
} }
func (c *markdownServiceClient) RestoreMarkdown(ctx context.Context, in *RestoreMarkdownRequest, opts ...grpc.CallOption) (*RestoreMarkdownResponse, error) { func (c *markdownServiceClient) RestoreMarkdownNodes(ctx context.Context, in *RestoreMarkdownNodesRequest, opts ...grpc.CallOption) (*RestoreMarkdownNodesResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(RestoreMarkdownResponse) out := new(RestoreMarkdownNodesResponse)
err := c.cc.Invoke(ctx, MarkdownService_RestoreMarkdown_FullMethodName, in, out, cOpts...) err := c.cc.Invoke(ctx, MarkdownService_RestoreMarkdownNodes_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *markdownServiceClient) StringifyMarkdownNodes(ctx context.Context, in *StringifyMarkdownNodesRequest, opts ...grpc.CallOption) (*StringifyMarkdownNodesResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(StringifyMarkdownNodesResponse)
err := c.cc.Invoke(ctx, MarkdownService_StringifyMarkdownNodes_FullMethodName, in, out, cOpts...)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -78,10 +91,12 @@ func (c *markdownServiceClient) GetLinkMetadata(ctx context.Context, in *GetLink ...@@ -78,10 +91,12 @@ func (c *markdownServiceClient) GetLinkMetadata(ctx context.Context, in *GetLink
// All implementations must embed UnimplementedMarkdownServiceServer // All implementations must embed UnimplementedMarkdownServiceServer
// for forward compatibility // for forward compatibility
type MarkdownServiceServer interface { type MarkdownServiceServer interface {
// Parses the given markdown content and returns a list of nodes. // ParseMarkdown parses the given markdown content and returns a list of nodes.
ParseMarkdown(context.Context, *ParseMarkdownRequest) (*ParseMarkdownResponse, error) ParseMarkdown(context.Context, *ParseMarkdownRequest) (*ParseMarkdownResponse, error)
// Restores the given nodes to markdown content. // RestoreMarkdownNodes restores the given nodes to markdown content.
RestoreMarkdown(context.Context, *RestoreMarkdownRequest) (*RestoreMarkdownResponse, error) RestoreMarkdownNodes(context.Context, *RestoreMarkdownNodesRequest) (*RestoreMarkdownNodesResponse, error)
// StringifyMarkdownNodes stringify the given nodes to plain text content.
StringifyMarkdownNodes(context.Context, *StringifyMarkdownNodesRequest) (*StringifyMarkdownNodesResponse, error)
// GetLinkMetadata returns metadata for a given link. // GetLinkMetadata returns metadata for a given link.
GetLinkMetadata(context.Context, *GetLinkMetadataRequest) (*LinkMetadata, error) GetLinkMetadata(context.Context, *GetLinkMetadataRequest) (*LinkMetadata, error)
mustEmbedUnimplementedMarkdownServiceServer() mustEmbedUnimplementedMarkdownServiceServer()
...@@ -94,8 +109,11 @@ type UnimplementedMarkdownServiceServer struct { ...@@ -94,8 +109,11 @@ type UnimplementedMarkdownServiceServer struct {
func (UnimplementedMarkdownServiceServer) ParseMarkdown(context.Context, *ParseMarkdownRequest) (*ParseMarkdownResponse, error) { func (UnimplementedMarkdownServiceServer) ParseMarkdown(context.Context, *ParseMarkdownRequest) (*ParseMarkdownResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ParseMarkdown not implemented") return nil, status.Errorf(codes.Unimplemented, "method ParseMarkdown not implemented")
} }
func (UnimplementedMarkdownServiceServer) RestoreMarkdown(context.Context, *RestoreMarkdownRequest) (*RestoreMarkdownResponse, error) { func (UnimplementedMarkdownServiceServer) RestoreMarkdownNodes(context.Context, *RestoreMarkdownNodesRequest) (*RestoreMarkdownNodesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method RestoreMarkdown not implemented") return nil, status.Errorf(codes.Unimplemented, "method RestoreMarkdownNodes not implemented")
}
func (UnimplementedMarkdownServiceServer) StringifyMarkdownNodes(context.Context, *StringifyMarkdownNodesRequest) (*StringifyMarkdownNodesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method StringifyMarkdownNodes not implemented")
} }
func (UnimplementedMarkdownServiceServer) GetLinkMetadata(context.Context, *GetLinkMetadataRequest) (*LinkMetadata, error) { func (UnimplementedMarkdownServiceServer) GetLinkMetadata(context.Context, *GetLinkMetadataRequest) (*LinkMetadata, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetLinkMetadata not implemented") return nil, status.Errorf(codes.Unimplemented, "method GetLinkMetadata not implemented")
...@@ -131,20 +149,38 @@ func _MarkdownService_ParseMarkdown_Handler(srv interface{}, ctx context.Context ...@@ -131,20 +149,38 @@ func _MarkdownService_ParseMarkdown_Handler(srv interface{}, ctx context.Context
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _MarkdownService_RestoreMarkdown_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { func _MarkdownService_RestoreMarkdownNodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(RestoreMarkdownRequest) in := new(RestoreMarkdownNodesRequest)
if err := dec(in); err != nil { if err := dec(in); err != nil {
return nil, err return nil, err
} }
if interceptor == nil { if interceptor == nil {
return srv.(MarkdownServiceServer).RestoreMarkdown(ctx, in) return srv.(MarkdownServiceServer).RestoreMarkdownNodes(ctx, in)
} }
info := &grpc.UnaryServerInfo{ info := &grpc.UnaryServerInfo{
Server: srv, Server: srv,
FullMethod: MarkdownService_RestoreMarkdown_FullMethodName, FullMethod: MarkdownService_RestoreMarkdownNodes_FullMethodName,
} }
handler := func(ctx context.Context, req interface{}) (interface{}, error) { handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MarkdownServiceServer).RestoreMarkdown(ctx, req.(*RestoreMarkdownRequest)) return srv.(MarkdownServiceServer).RestoreMarkdownNodes(ctx, req.(*RestoreMarkdownNodesRequest))
}
return interceptor(ctx, in, info, handler)
}
func _MarkdownService_StringifyMarkdownNodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(StringifyMarkdownNodesRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MarkdownServiceServer).StringifyMarkdownNodes(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: MarkdownService_StringifyMarkdownNodes_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MarkdownServiceServer).StringifyMarkdownNodes(ctx, req.(*StringifyMarkdownNodesRequest))
} }
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
...@@ -179,8 +215,12 @@ var MarkdownService_ServiceDesc = grpc.ServiceDesc{ ...@@ -179,8 +215,12 @@ var MarkdownService_ServiceDesc = grpc.ServiceDesc{
Handler: _MarkdownService_ParseMarkdown_Handler, Handler: _MarkdownService_ParseMarkdown_Handler,
}, },
{ {
MethodName: "RestoreMarkdown", MethodName: "RestoreMarkdownNodes",
Handler: _MarkdownService_RestoreMarkdown_Handler, Handler: _MarkdownService_RestoreMarkdownNodes_Handler,
},
{
MethodName: "StringifyMarkdownNodes",
Handler: _MarkdownService_StringifyMarkdownNodes_Handler,
}, },
{ {
MethodName: "GetLinkMetadata", MethodName: "GetLinkMetadata",
......
...@@ -7,6 +7,7 @@ import ( ...@@ -7,6 +7,7 @@ import (
"github.com/usememos/gomark/ast" "github.com/usememos/gomark/ast"
"github.com/usememos/gomark/parser" "github.com/usememos/gomark/parser"
"github.com/usememos/gomark/parser/tokenizer" "github.com/usememos/gomark/parser/tokenizer"
"github.com/usememos/gomark/renderer"
"github.com/usememos/gomark/restore" "github.com/usememos/gomark/restore"
"github.com/usememos/memos/plugin/httpgetter" "github.com/usememos/memos/plugin/httpgetter"
...@@ -25,13 +26,21 @@ func (*APIV1Service) ParseMarkdown(_ context.Context, request *v1pb.ParseMarkdow ...@@ -25,13 +26,21 @@ func (*APIV1Service) ParseMarkdown(_ context.Context, request *v1pb.ParseMarkdow
}, nil }, nil
} }
func (*APIV1Service) RestoreMarkdown(_ context.Context, request *v1pb.RestoreMarkdownRequest) (*v1pb.RestoreMarkdownResponse, error) { func (*APIV1Service) RestoreMarkdownNodes(_ context.Context, request *v1pb.RestoreMarkdownNodesRequest) (*v1pb.RestoreMarkdownNodesResponse, error) {
markdown := restore.Restore(convertToASTNodes(request.Nodes)) markdown := restore.Restore(convertToASTNodes(request.Nodes))
return &v1pb.RestoreMarkdownResponse{ return &v1pb.RestoreMarkdownNodesResponse{
Markdown: markdown, Markdown: markdown,
}, nil }, nil
} }
func (*APIV1Service) StringifyMarkdownNodes(_ context.Context, request *v1pb.StringifyMarkdownNodesRequest) (*v1pb.StringifyMarkdownNodesResponse, error) {
stringRenderer := renderer.NewStringRenderer()
plainText := stringRenderer.Render(convertToASTNodes(request.Nodes))
return &v1pb.StringifyMarkdownNodesResponse{
PlainText: plainText,
}, nil
}
func (*APIV1Service) GetLinkMetadata(_ context.Context, request *v1pb.GetLinkMetadataRequest) (*v1pb.LinkMetadata, error) { func (*APIV1Service) GetLinkMetadata(_ context.Context, request *v1pb.GetLinkMetadataRequest) (*v1pb.LinkMetadata, error) {
htmlMeta, err := httpgetter.GetHTMLMeta(request.Link) htmlMeta, err := httpgetter.GetHTMLMeta(request.Link)
if err != nil { if err != nil {
......
...@@ -37,7 +37,7 @@ const TaskList: React.FC<Props> = ({ index, indent, complete, children }: Props) ...@@ -37,7 +37,7 @@ const TaskList: React.FC<Props> = ({ index, indent, complete, children }: Props)
} }
(node.taskListNode as TaskListNode)!.complete = on; (node.taskListNode as TaskListNode)!.complete = on;
const { markdown } = await markdownServiceClient.restoreMarkdown({ nodes: context.nodes }); const { markdown } = await markdownServiceClient.restoreMarkdownNodes({ nodes: context.nodes });
await memoStore.updateMemo( await memoStore.updateMemo(
{ {
name: context.memoName, name: context.memoName,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment