{
	"ID": "20200924101106-19z4kaa",
	"Spec": "1",
	"Type": "NodeDocument",
	"Properties": {
		"id": "20200924101106-19z4kaa",
		"title": "What is a Content Block",
		"type": "doc",
		"updated": "20230419153642"
	},
	"Children": [
		{
			"ID": "20210118101709-5a7bzl0",
			"Type": "NodeHeading",
			"HeadingLevel": 2,
			"Properties": {
				"id": "20210118101709-5a7bzl0"
			},
			"Children": [
				{
					"Type": "NodeHeadingC8hMarker",
					"Data": "## "
				},
				{
					"Type": "NodeText",
					"Data": "Content block definition"
				}
			]
		},
		{
			"ID": "20210118101709-9lqij9d",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20210118101709-9lqij9d",
				"updated": "20220623201341"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "\""
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "tag",
					"TextMarkTextContent": "Content Block"
				},
				{
					"Type": "NodeText",
					"Data": "\" refers to a piece of content, and each piece of such content is identified by a globally unique ID. The ID is automatically generated by the program and has the form: "
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "code",
					"TextMarkTextContent": "202008250000-a1b2c3d"
				},
				{
					"Type": "NodeText",
					"Data": ", consisting of time and 7 random characters."
				}
			]
		},
		{
			"ID": "20210104091535-aqraylz",
			"Type": "NodeHeading",
			"HeadingLevel": 2,
			"Properties": {
				"id": "20210104091535-aqraylz",
				"updated": "20210415203134"
			},
			"Children": [
				{
					"Type": "NodeHeadingC8hMarker",
					"Data": "## "
				},
				{
					"Type": "NodeText",
					"Data": "Content block types"
				}
			]
		},
		{
			"ID": "20210104091535-6ark8fi",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20210104091535-6ark8fi"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "The most common content block is the familiar paragraph (Paragraph). In traditional Chinese typesetting, paragraphs are usually represented by indentation (two spaces) at the beginning of the paragraph. With the development of the Internet, it has gradually affected the representation of paragraphs. The most commonly used method is to increase the line spacing between paragraphs, or use blank lines to separate paragraphs."
				}
			]
		},
		{
			"ID": "20210104091535-vhbubwx",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20210104091535-vhbubwx"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "In actual use, it is not enough to rely on paragraph typesetting. It is often necessary to use Heading, List, Table, Blockquote, etc. to enrich our typesetting. These typographic styles are not only visually different, but more importantly, they express the semantics of the content to a certain extent. For example, when we see an unordered list, we can know that each list item is in an indiscriminate level relationship, while when we see an ordered list, the opposite is true."
				}
			]
		},
		{
			"ID": "20210104091535-pnp9cmo",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20210104091535-pnp9cmo",
				"updated": "20220623201559"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "Therefore, there are many content blocks "
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "block-ref",
					"TextMarkBlockRefID": "20200924101225-k254i8g",
					"TextMarkBlockRefSubtype": "s",
					"TextMarkTextContent": "types"
				},
				{
					"Type": "NodeText",
					"Data": ", and different types of content blocks are defined by formatting. "
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "tag",
					"TextMarkTextContent": "Content Block/Type"
				}
			]
		},
		{
			"ID": "20210104091535-sbufc1h",
			"Type": "NodeHeading",
			"HeadingLevel": 2,
			"Properties": {
				"id": "20210104091535-sbufc1h"
			},
			"Children": [
				{
					"Type": "NodeHeadingC8hMarker",
					"Data": "## "
				},
				{
					"Type": "NodeText",
					"Data": "Combined content blocks"
				}
			]
		},
		{
			"ID": "20210104091535-2ybzqz1",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20210104091535-2ybzqz1",
				"updated": "20220623201418"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "A document is a combination of some content blocks, and the content block is the basic unit. This is like Lego bricks, which can be combined using different basic modules. "
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "tag",
					"TextMarkTextContent": "Note"
				},
				{
					"Type": "NodeText",
					"Data": ": the document itself is also a kind of content block. More precisely, the three content blocks of document block, list block, and block reference block are container blocks, and they can contain any other types of content blocks. "
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "tag",
					"TextMarkTextContent": "Content Block/Combine"
				}
			]
		},
		{
			"ID": "20210104091535-11dba0r",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20210104091535-11dba0r"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "At this point, we have been able to use content blocks to describe all content, so that we can use uniform usage to "
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "block-ref",
					"TextMarkBlockRefID": "20200924101256-f8b1sbi",
					"TextMarkBlockRefSubtype": "s",
					"TextMarkTextContent": "link content block"
				},
				{
					"Type": "NodeText",
					"Data": " . Logically, there is no page concept, which reduces unnecessary burdens in use and allows users to focus on the content block."
				}
			]
		},
		{
			"ID": "20210118104710-tmyyac4",
			"Type": "NodeHeading",
			"HeadingLevel": 2,
			"Properties": {
				"id": "20210118104710-tmyyac4"
			},
			"Children": [
				{
					"Type": "NodeHeadingC8hMarker",
					"Data": "## "
				},
				{
					"Type": "NodeText",
					"Data": "Naming and memo"
				}
			]
		},
		{
			"ID": "20210118104710-sb9ti9s",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20210118104710-sb9ti9s",
				"memo": "The memo is usually a short sentence."
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "We can name each content block, add aliases and memo. Naming and aliases are mainly used for anti-link "
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "block-ref",
					"TextMarkBlockRefID": "20210106204950-gjw62fp",
					"TextMarkBlockRefSubtype": "s",
					"TextMarkTextContent": "mention "
				},
				{
					"Type": "NodeText",
					"Data": "search, and memo are used to record some inconvenient information in the content area."
				}
			]
		},
		{
			"ID": "20210118104710-2sb91b3",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20210118104710-2sb91b3",
				"updated": "20210512160955"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "After opening the options for displaying bookmarks, naming, and alias identification in the "
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "kbd",
					"TextMarkTextContent": "Settings"
				},
				{
					"Type": "NodeText",
					"Data": " - "
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "kbd",
					"TextMarkTextContent": "Editor"
				},
				{
					"Type": "NodeText",
					"Data": ", the named content block will be displayed with a frame in the editor. If you name and memo the document block, when the mouse is hovering over the doc tree document, the relevant naming and memo of the document will appear."
				}
			]
		},
		{
			"ID": "20210118104710-b71o7og",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20210118104710-b71o7og",
				"updated": "20210512154814"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "You can use "
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "block-ref",
					"TextMarkBlockRefID": "20201117112518-dott91x",
					"TextMarkBlockRefSubtype": "s",
					"TextMarkTextContent": "Embed Content Block"
				},
				{
					"Type": "NodeText",
					"Data": " to search and summarize the naming and memo, such as listing the content blocks that contain the keyword "
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "code",
					"TextMarkTextContent": "short"
				},
				{
					"Type": "NodeText",
					"Data": " in the memo:"
				}
			]
		},
		{
			"ID": "20210118104710-ymm678p",
			"Type": "NodeBlockQueryEmbed",
			"Data": "{{SELECT * FROM blocks WHERE memo LIKE '%short%'}}\n",
			"Properties": {
				"id": "20210118104710-ymm678p"
			},
			"Children": [
				{
					"Type": "NodeOpenBrace"
				},
				{
					"Type": "NodeOpenBrace"
				},
				{
					"Type": "NodeBlockQueryEmbedScript",
					"Data": "SELECT * FROM blocks WHERE memo LIKE '%short%'"
				},
				{
					"Type": "NodeCloseBrace"
				},
				{
					"Type": "NodeCloseBrace"
				}
			]
		},
		{
			"ID": "20230419153621-jw11s0z",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20230419153621-jw11s0z",
				"updated": "20230419153625"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "​"
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "tag",
					"TextMarkTextContent": "Note"
				},
				{
					"Type": "NodeText",
					"Data": "​:"
				}
			]
		},
		{
			"ID": "20230419153621-c80sc5z",
			"Type": "NodeList",
			"ListData": {},
			"Properties": {
				"id": "20230419153621-c80sc5z",
				"updated": "20230419153642"
			},
			"Children": [
				{
					"ID": "20230419153621-08jsrq5",
					"Type": "NodeListItem",
					"ListData": {
						"BulletChar": 42,
						"Marker": "Kg=="
					},
					"Properties": {
						"id": "20230419153621-08jsrq5",
						"updated": "20230419153621"
					},
					"Children": [
						{
							"ID": "20230419153621-anbp5lj",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20230419153621-anbp5lj",
								"updated": "20230419153621"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "The name is unique, only one name can be set for a block"
								}
							]
						}
					]
				},
				{
					"ID": "20230419153621-8d4uul5",
					"Type": "NodeListItem",
					"ListData": {
						"BulletChar": 42,
						"Marker": "Kg=="
					},
					"Properties": {
						"id": "20230419153621-8d4uul5",
						"updated": "20230419153621"
					},
					"Children": [
						{
							"ID": "20230419153621-ekwrodk",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20230419153621-ekwrodk",
								"updated": "20230419153621"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "Multiple aliases can be set, separated by commas ("
								},
								{
									"Type": "NodeTextMark",
									"TextMarkType": "code",
									"TextMarkTextContent": ","
								},
								{
									"Type": "NodeText",
									"Data": "​) in English"
								}
							]
						}
					]
				},
				{
					"ID": "20230419153621-iukqnpo",
					"Type": "NodeListItem",
					"ListData": {
						"BulletChar": 42,
						"Marker": "Kg=="
					},
					"Properties": {
						"id": "20230419153621-iukqnpo",
						"updated": "20230419153642"
					},
					"Children": [
						{
							"ID": "20230419153621-ij7hh67",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20230419153621-ij7hh67",
								"updated": "20230419153642"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "Memos only support plain text"
								}
							]
						}
					]
				}
			]
		}
	]
}