diff options
author | 2021-05-17 09:29:16 -0500 | |
---|---|---|
committer | 2021-05-17 09:29:16 -0500 | |
commit | b3886c206f550b53227facd0480a94500ab2515d (patch) | |
tree | b3a1af99f6fa62adeb6996db1c4d47f4015c32d4 /packages/astro-parser/src/parse/state/codespan.ts | |
parent | fe5cf78e8e5760f814aa7f5af4c68f51b2ce457c (diff) | |
download | astro-b3886c206f550b53227facd0480a94500ab2515d.tar.gz astro-b3886c206f550b53227facd0480a94500ab2515d.tar.zst astro-b3886c206f550b53227facd0480a94500ab2515d.zip |
Fix markdown issues (#208)
* Init fix/markdown
* Astro Markdown (#207)
* Add Astro Markdown to VSCode Extension
* Add Astro Markdown to Astro
* refactor: update astro-markdown example
* feat: remove embedded components from `.md` files
* fix: resolve `.md.astro` files at runtime
* chore: update markdown tests
* feat: add <Markdown> component
* chore: bump examples
* chore: update example
* fix: improve Markdown child handling
* feat: harden markdown support, add code fence support, add automatic dedenting
* chore: add weird markdown edge cases
* chore: update remote-markdown examples
* chore: add comment to Markdown.astro
* feat: improve markdown support (codefences, nested inside HTML)
* refactor: extract import specifier types to set
* refactor: conditionally import markdown renderer
* refactor: revert special-cased "astro/components"
* refactor: revert special-cased "astro/components"
* refactor: use astro/components/Markdown.astro
* refactor: remove `.md.astro` support in favor of Markdown component
* refactor: use regular .astro files
* refactor: remove unused code
* refactor: move Markdown inside Layout
* wip: markdown scoped styles
* feat: improve scoped styles in Markdown
* feat: micromark => remark ecosystem
* fix: markdown build
* fix: markdown build
* chore: add todo
* fix: collect headers text
* docs: add Markdown doc
* chore: add changeset
* docs: improve Markdown highlighting
* refactor: prefer Set
* refactor: exclude large unified deps
* docs: update markdown docs
Co-authored-by: Jonathan Neal <jonathantneal@hotmail.com>
* chore: remove extra markdown deps
* perf: optimize markdown
* fix: unified/rehype deps
* temp: fix markdown test
* test: add TODO comment
* fix: do not namespace frontmatter, just astro metadata
* test: fix astro-markdown test
* test: add realworld markdown example
* fix: prism language bug
* docs: update markdown docs
* chore: bump dependencies
* fix: escape codespan
* fix: unterminated string literal
* fix(vscode): inline dependencies
* fix(vscode): dependencies
* feat(vscode): embedded markdown
* feat: add Markdown syntax highlighting
* chore: improve markdown example
* fix: markdown example
* feat: highlighting improvements
* chore: add changeset
* fix: CodeBlock => CodeSpan
* chore: get astro-markdown example running
Co-authored-by: Jonathan Neal <jonathantneal@hotmail.com>
Diffstat (limited to 'packages/astro-parser/src/parse/state/codespan.ts')
-rw-r--r-- | packages/astro-parser/src/parse/state/codespan.ts | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/astro-parser/src/parse/state/codespan.ts b/packages/astro-parser/src/parse/state/codespan.ts new file mode 100644 index 000000000..b685800a7 --- /dev/null +++ b/packages/astro-parser/src/parse/state/codespan.ts @@ -0,0 +1,25 @@ +// @ts-nocheck +import { Parser } from '../index.js'; + +export default function codespan(parser: Parser) { + const start = parser.index; + const open = parser.match_regex(/(?<!\\)`{1,2}/); + parser.index += open!.length; + + let raw = open; + while (parser.index < parser.template.length && !parser.match(open)) { + raw += parser.template[parser.index++]; + } + parser.eat(open, true); + raw += open; + + const node = { + start, + end: parser.index, + type: 'CodeSpan', + raw, + data: raw?.slice(open?.length, open?.length * -1).replace(/^ /, '').replace(/ $/, '') + }; + + parser.current().children.push(node); +} |