mirror of
https://github.com/withastro/astro.git
synced 2024-12-16 21:46:22 -05:00
ccafa8d230
* Update highlight.ts * Create cold-snakes-train.md * Update Code.astro Solution for use-case described in withastro/roadmap#276 (https://github.com/withastro/roadmap/discussions/276) * roll-back initial fix * new fix * update changeset * Update packages/markdown/remark/src/rehype-prism.ts * Update .changeset/cold-snakes-train.md Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> * Update .changeset/cold-snakes-train.md Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> * Update .changeset/cold-snakes-train.md Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> * Update .changeset/cold-snakes-train.md Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> --------- Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com> Co-authored-by: Matthew Phillips <matthew@matthewphillips.info> Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
999 B
999 B
@astrojs/markdown-remark |
---|
minor |
Adds a data-language
attribute on the rendered pre
elements to expose the highlighted syntax language.
For example, the following Markdown code block will expose data-language="python"
:
\```python
def func():
print('Hello Astro!')
\```
This allows retrieving the language in a rehype plugin from node.properties.dataLanguage
by accessing the <pre>
element using { tagName: "pre" }
:
// myRehypePre.js
import { visit } from "unist-util-visit";
export default function myRehypePre() {
return (tree) => {
visit(tree, { tagName: "pre" }, (node) => {
const lang = node.properties.dataLanguage;
[...]
});
};
}
Note: The <pre>
element is not exposed when using Astro's <Code />
component which outputs flattened HTML.
The data-language
attribute may also be used in css rules:
pre::before {
content: attr(data-language);
}
pre[data-language="javascript"] {
font-size: 2rem;
}