Skip to content

Commit

Permalink
use esmodule
Browse files Browse the repository at this point in the history
  • Loading branch information
xieyuheng committed Jan 7, 2024
1 parent eb52025 commit 2309aae
Show file tree
Hide file tree
Showing 73 changed files with 855 additions and 444 deletions.
967 changes: 688 additions & 279 deletions package-lock.json

Large diffs are not rendered by default.

27 changes: 14 additions & 13 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,33 +1,34 @@
{
"name": "@xieyuheng/x-markdown",
"version": "0.2.0",
"type": "module",
"repository": "github:xieyuheng/x-markdown",
"main": "lib/index.js",
"files": [
"lib"
"src", "lib"
],
"scripts": {
"build": "rm -r lib && tsc",
"build:watch": "rm -r lib && tsc --watch",
"test:ts": "vitest --dir src --threads false --run",
"test:watch": "vitest --dir src --threads false",
"test:ts": "vitest --dir src --run",
"test:watch": "vitest --dir src",
"test": "npm run test:ts",
"format": "prettier src --write"
},
"dependencies": {
"front-matter": "^4.0.2",
"markdown-it": "^13.0.2",
"markdown-it-footnote": "^3.0.3"
"markdown-it": "^14.0.0",
"markdown-it-footnote": "^4.0.0"
},
"devDependencies": {
"@types/markdown-it": "^13.0.2",
"@types/markdown-it-footnote": "^3.0.1",
"@types/node": "^20.8.6",
"prettier": "^3.0.3",
"prettier-plugin-organize-imports": "^3.2.3",
"typescript": "^5.2.2",
"vite": "^4.4.11",
"vitest": "^0.34.6"
"@types/markdown-it": "^13.0.7",
"@types/markdown-it-footnote": "^3.0.3",
"@types/node": "^20.10.7",
"prettier": "^3.1.1",
"prettier-plugin-organize-imports": "^3.2.4",
"typescript": "^5.3.3",
"vite": "^5.0.11",
"vitest": "^1.1.3"
},
"license": "GPL-3.0-or-later"
}
4 changes: 2 additions & 2 deletions src/document/Document.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Node } from "../node"
import { Footnote } from "../parse/Footnote"
import { type Node } from "../node/index.js"
import { type Footnote } from "../parse/Footnote.js"

export type Document = {
kind: "Document"
Expand Down
4 changes: 2 additions & 2 deletions src/document/documentChildren.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Node } from "../node"
import { Document } from "./Document"
import { type Node } from "../node/index.js"
import { type Document } from "./Document.js"

export function documentChildren(document: Document): Array<Node> {
return [
Expand Down
4 changes: 2 additions & 2 deletions src/document/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export * from "./Document"
export * from "./documentChildren"
export * from "./Document.js"
export * from "./documentChildren.js"
4 changes: 2 additions & 2 deletions src/format/formatNode.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Node } from "../node"
import { Alignment } from "../nodes"
import { type Node } from "../node/index.js"
import { type Alignment } from "../nodes/index.js"

export function formatNode(node: Node): string {
switch (node.kind) {
Expand Down
2 changes: 1 addition & 1 deletion src/format/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from "./formatNode"
export * from "./formatNode.js"
12 changes: 6 additions & 6 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export * from "./document"
export * from "./format"
export * from "./node"
export * as Nodes from "./nodes"
export * from "./parse"
export * from "./traverse"
export * from "./document/index.js"
export * from "./format/index.js"
export * from "./node/index.js"
export * as Nodes from "./nodes/index.js"
export * from "./parse/index.js"
export * from "./traverse/index.js"
2 changes: 1 addition & 1 deletion src/node/Node.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import * as Nodes from "../nodes"
import * as Nodes from "../nodes/index.js"

export type Node =
// ContainerBlock
Expand Down
4 changes: 2 additions & 2 deletions src/node/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export * from "./Node"
export * from "./nodeChildren"
export * from "./Node.js"
export * from "./nodeChildren.js"
2 changes: 1 addition & 1 deletion src/node/nodeChildren.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from "./Node"
import { type Node } from "./Node.js"

export function nodeChildren(node: Node): Array<Node> {
if (node.kind === "Table") {
Expand Down
2 changes: 1 addition & 1 deletion src/nodes/container-blocks/BlockQuote.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from "../../node"
import { type Node } from "../../node/index.js"

export type BlockQuote = {
kind: "BlockQuote"
Expand Down
2 changes: 1 addition & 1 deletion src/nodes/container-blocks/Item.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from "../../node"
import { type Node } from "../../node/index.js"

export type Item = {
kind: "Item"
Expand Down
2 changes: 1 addition & 1 deletion src/nodes/container-blocks/List.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import * as Nodes from "../../nodes"
import * as Nodes from "../../nodes/index.js"

export type List = {
kind: "List"
Expand Down
2 changes: 1 addition & 1 deletion src/nodes/container-blocks/OrderedItem.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from "../../node"
import { type Node } from "../../node/index.js"

export type OrderedItem = {
kind: "OrderedItem"
Expand Down
2 changes: 1 addition & 1 deletion src/nodes/container-blocks/OrderedList.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import * as Nodes from "../../nodes"
import * as Nodes from "../../nodes/index.js"

export type OrderedList = {
kind: "OrderedList"
Expand Down
42 changes: 21 additions & 21 deletions src/nodes/index.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
export * from "./container-blocks/BlockQuote"
export * from "./container-blocks/Item"
export * from "./container-blocks/List"
export * from "./container-blocks/OrderedItem"
export * from "./container-blocks/OrderedList"
export * from "./inlines/Code"
export * from "./inlines/Emphasis"
export * from "./inlines/FootnoteRef"
export * from "./inlines/HardLineBreak"
export * from "./inlines/HtmlInline"
export * from "./inlines/Image"
export * from "./inlines/Link"
export * from "./inlines/SoftLineBreak"
export * from "./inlines/Strong"
export * from "./inlines/Text"
export * from "./leaf-blocks/CodeBlock"
export * from "./leaf-blocks/Headline"
export * from "./leaf-blocks/HtmlBlock"
export * from "./leaf-blocks/Paragraph"
export * from "./leaf-blocks/Table"
export * from "./leaf-blocks/ThematicBreak"
export * from "./container-blocks/BlockQuote.js"
export * from "./container-blocks/Item.js"
export * from "./container-blocks/List.js"
export * from "./container-blocks/OrderedItem.js"
export * from "./container-blocks/OrderedList.js"
export * from "./inlines/Code.js"
export * from "./inlines/Emphasis.js"
export * from "./inlines/FootnoteRef.js"
export * from "./inlines/HardLineBreak.js"
export * from "./inlines/HtmlInline.js"
export * from "./inlines/Image.js"
export * from "./inlines/Link.js"
export * from "./inlines/SoftLineBreak.js"
export * from "./inlines/Strong.js"
export * from "./inlines/Text.js"
export * from "./leaf-blocks/CodeBlock.js"
export * from "./leaf-blocks/Headline.js"
export * from "./leaf-blocks/HtmlBlock.js"
export * from "./leaf-blocks/Paragraph.js"
export * from "./leaf-blocks/Table.js"
export * from "./leaf-blocks/ThematicBreak.js"
2 changes: 1 addition & 1 deletion src/nodes/inlines/Emphasis.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from "../../node"
import { type Node } from "../../node/index.js"

export type Emphasis = {
kind: "Emphasis"
Expand Down
2 changes: 1 addition & 1 deletion src/nodes/inlines/Image.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from "../../node"
import { type Node } from "../../node/index.js"

export type Image = {
kind: "Image"
Expand Down
2 changes: 1 addition & 1 deletion src/nodes/inlines/Link.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from "../../node"
import { type Node } from "../../node/index.js"

export type Link = {
kind: "Link"
Expand Down
2 changes: 1 addition & 1 deletion src/nodes/inlines/Strong.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from "../../node"
import { type Node } from "../../node/index.js"

export type Strong = {
kind: "Strong"
Expand Down
2 changes: 1 addition & 1 deletion src/nodes/leaf-blocks/Headline.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from "../../node"
import { type Node } from "../../node/index.js"

export type Headline = {
kind: "Headline"
Expand Down
2 changes: 1 addition & 1 deletion src/nodes/leaf-blocks/Paragraph.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from "../../node"
import { type Node } from "../../node/index.js"

export type Paragraph = {
kind: "Paragraph"
Expand Down
2 changes: 1 addition & 1 deletion src/nodes/leaf-blocks/Table.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from "../../node"
import { type Node } from "../../node/index.js"

export type Alignment = null | "left" | "right" | "center"

Expand Down
4 changes: 2 additions & 2 deletions src/parse/Context.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Data } from "./Data"
import { Footnote } from "./Footnote"
import { type Data } from "./Data.js"
import { type Footnote } from "./Footnote.js"

export type Context = {
stack: Array<Data>
Expand Down
6 changes: 3 additions & 3 deletions src/parse/Data.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Node } from "../node"
import { TableData } from "./TableData"
import { Token } from "./Token"
import { type Node } from "../node/index.js"
import { type TableData } from "./TableData.js"
import { type Token } from "./Token.js"

export type Data =
| { kind: "Node"; node: Node }
Expand Down
2 changes: 1 addition & 1 deletion src/parse/Footnote.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from "../node"
import { type Node } from "../node/index.js"

export type Footnote = {
id: number
Expand Down
4 changes: 2 additions & 2 deletions src/parse/TableData.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Node } from "../node"
import { Alignment } from "../nodes"
import { type Node } from "../node/index.js"
import { type Alignment } from "../nodes/index.js"

export type TableData = TableHead | TableBody | TableRow | TableCell

Expand Down
4 changes: 2 additions & 2 deletions src/parse/TokenHandler.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Context } from "./Context"
import { Token } from "./Token"
import { type Context } from "./Context.js"
import { type Token } from "./Token.js"

export type TokenHandler = (ctx: Context, token: Token) => void
4 changes: 2 additions & 2 deletions src/parse/assertDataIsTableCell.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Data } from "./Data"
import { TableCell } from "./TableData"
import { type Data } from "./Data.js"
import { type TableCell } from "./TableData.js"

export function assertDataIsTableCell(data: Data, who: string): TableCell {
if (data.kind === "TableCell") {
Expand Down
4 changes: 2 additions & 2 deletions src/parse/assertDataIsTableRow.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Data } from "./Data"
import { TableRow } from "./TableData"
import { type Data } from "./Data.js"
import { type TableRow } from "./TableData.js"

export function assertDataIsTableRow(data: Data, who: string): TableRow {
if (data.kind === "TableRow") {
Expand Down
4 changes: 2 additions & 2 deletions src/parse/assertNodeIsItem.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Node } from "../node"
import * as Nodes from "../nodes"
import { type Node } from "../node/index.js"
import * as Nodes from "../nodes/index.js"

export function assertNodeIsItem(node: Node, who: string): Nodes.Item {
if (node.kind === "Item") {
Expand Down
4 changes: 2 additions & 2 deletions src/parse/assertNodeIsOrderedItem.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Node } from "../node"
import * as Nodes from "../nodes"
import { type Node } from "../node/index.js"
import * as Nodes from "../nodes/index.js"

export function assertNodeIsOrderedItem(
node: Node,
Expand Down
4 changes: 2 additions & 2 deletions src/parse/collectNodes.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Node } from "../node"
import { Data } from "./Data"
import { type Node } from "../node/index.js"
import { type Data } from "./Data.js"

export function collectNodes(stack: Array<Data>): Array<Node> {
const who = "collectNodes"
Expand Down
8 changes: 4 additions & 4 deletions src/parse/collectNodesUntil.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Node } from "../node"
import { Data } from "./Data"
import { normalizeText } from "./normalizeText"
import { Token } from "./Token"
import { type Node } from "../node/index.js"
import { type Data } from "./Data.js"
import { normalizeText } from "./normalizeText.js"
import { type Token } from "./Token.js"

export function collectNodesUntil(
stack: Array<Data>,
Expand Down
4 changes: 2 additions & 2 deletions src/parse/collectUntil.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Data } from "./Data"
import { Token } from "./Token"
import { type Data } from "./Data.js"
import { type Token } from "./Token.js"

export function collectUntil(
stack: Array<Data>,
Expand Down
6 changes: 3 additions & 3 deletions src/parse/executeTokens.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Context } from "./Context"
import { Token } from "./Token"
import { TokenHandler } from "./TokenHandler"
import { type Context } from "./Context.js"
import { type Token } from "./Token.js"
import { type TokenHandler } from "./TokenHandler.js"

export function executeTokens(
ctx: Context,
Expand Down
12 changes: 6 additions & 6 deletions src/parse/handlers/allHandlers.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { TokenHandler } from "../TokenHandler"
import { executeTokens } from "../executeTokens"
import { containerBlockHandlers } from "./containerBlockHandlers"
import { footnoteHandlers } from "./footnoteHandlers"
import { inlineHandlers } from "./inlineHandlers"
import { leafBlockHandlers } from "./leafBlockHandlers"
import { type TokenHandler } from "../TokenHandler.js"
import { executeTokens } from "../executeTokens.js"
import { containerBlockHandlers } from "./containerBlockHandlers.js"
import { footnoteHandlers } from "./footnoteHandlers.js"
import { inlineHandlers } from "./inlineHandlers.js"
import { leafBlockHandlers } from "./leafBlockHandlers.js"

export const allHandlers: Record<string, TokenHandler> = {
inline(ctx, token) {
Expand Down
8 changes: 4 additions & 4 deletions src/parse/handlers/containerBlockHandlers.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { TokenHandler } from "../TokenHandler"
import { assertNodeIsItem } from "../assertNodeIsItem"
import { assertNodeIsOrderedItem } from "../assertNodeIsOrderedItem"
import { collectNodesUntil } from "../collectNodesUntil"
import { type TokenHandler } from "../TokenHandler.js"
import { assertNodeIsItem } from "../assertNodeIsItem.js"
import { assertNodeIsOrderedItem } from "../assertNodeIsOrderedItem.js"
import { collectNodesUntil } from "../collectNodesUntil.js"

export const containerBlockHandlers: Record<string, TokenHandler> = {
blockquote_open(ctx, token) {
Expand Down
6 changes: 3 additions & 3 deletions src/parse/handlers/footnoteHandlers.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { collectNodesUntil } from "../collectNodesUntil"
import { collectUntil } from "../collectUntil"
import { TokenHandler } from "../TokenHandler"
import { collectNodesUntil } from "../collectNodesUntil.js"
import { collectUntil } from "../collectUntil.js"
import { type TokenHandler } from "../TokenHandler.js"

export const footnoteHandlers: Record<string, TokenHandler> = {
footnote_anchor(ctx, token) {
Expand Down
10 changes: 5 additions & 5 deletions src/parse/handlers/inlineHandlers.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { createEmptyContext } from "../Context"
import { TokenHandler } from "../TokenHandler"
import { collectNodes } from "../collectNodes"
import { collectNodesUntil } from "../collectNodesUntil"
import { executeTokens } from "../executeTokens"
import { createEmptyContext } from "../Context.js"
import { type TokenHandler } from "../TokenHandler.js"
import { collectNodes } from "../collectNodes.js"
import { collectNodesUntil } from "../collectNodesUntil.js"
import { executeTokens } from "../executeTokens.js"

export const inlineHandlers: Record<string, TokenHandler> = {
text(ctx, token) {
Expand Down
8 changes: 4 additions & 4 deletions src/parse/handlers/leafBlockHandlers.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { TokenHandler } from "../TokenHandler"
import { collectNodesUntil } from "../collectNodesUntil"
import { headlineLevelRecord } from "../headlineLevelRecord"
import { tableHandlers } from "./tableHandlers"
import { type TokenHandler } from "../TokenHandler.js"
import { collectNodesUntil } from "../collectNodesUntil.js"
import { headlineLevelRecord } from "../headlineLevelRecord.js"
import { tableHandlers } from "./tableHandlers.js"

export const leafBlockHandlers: Record<string, TokenHandler> = {
...tableHandlers,
Expand Down
Loading

0 comments on commit 2309aae

Please sign in to comment.