mirror of
https://github.com/squidfunk/mkdocs-material.git
synced 2024-06-14 11:52:32 +03:00
Reverted emoji.py integration to be moved out to separate package
This commit is contained in:
parent
15961dffa8
commit
cb99a22fdf
@ -201,35 +201,6 @@ To view all the available short names and emoji available, see
|
||||
files containing the short names and emoji associated with each supported
|
||||
index.
|
||||
|
||||
In addition, you can access all the Material icons and Fontawesome icons by using
|
||||
Material for MkDocs's custom emoji index. It extends the Twemoji index with new
|
||||
short names that access any of the included icons. To use the custom index, you
|
||||
need to use the following options when including the Emoji extension:
|
||||
|
||||
```
|
||||
- pymdownx.emoji:
|
||||
emoji_index: !!python/name:material.emoji.material
|
||||
emoji_generator: !!python/name:material.emoji.to_svg
|
||||
```
|
||||
|
||||
Then we can access any of the icons:
|
||||
|
||||
=== "Markdown"
|
||||
```
|
||||
We can use Material Icons :material-airplane:.
|
||||
|
||||
We can also use Fontawesome Icons :fontawesome-solid-ambulance:.
|
||||
|
||||
That's not all, we can also use Octicons :octicons-octoface:.
|
||||
```
|
||||
|
||||
=== "Results"
|
||||
We can use Material Icons :material-airplane:.
|
||||
|
||||
We can also use Fontawesome Icons :fontawesome-solid-ambulance:.
|
||||
|
||||
That's not all, we can also use Octicons :octicons-octoface:.
|
||||
|
||||
!!! warning "Legal disclaimer"
|
||||
|
||||
Material has no affiliation with [JoyPixles][15] or [Twemoji][14], both
|
||||
|
@ -1,67 +0,0 @@
|
||||
"""
|
||||
Emoji extras for Material.
|
||||
|
||||
Override the Twemoji Index with an extended version that includes short names for Material icons, Fontawesome, etc.
|
||||
"""
|
||||
import os
|
||||
import glob
|
||||
import copy
|
||||
from pymdownx import twemoji_db
|
||||
from pymdownx.emoji import TWEMOJI_SVG_CDN, add_attriubtes
|
||||
import codecs
|
||||
import xml.etree.ElementTree as etree
|
||||
|
||||
RESOURCES = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
|
||||
def material():
|
||||
"""Provide a copied Twemoji index with additional codes for Material included icons."""
|
||||
|
||||
# Copy the Twemoji index
|
||||
index = {
|
||||
"name": 'twemoji',
|
||||
"emoji": copy.deepcopy(twemoji_db.emoji),
|
||||
"aliases": copy.deepcopy(twemoji_db.aliases)
|
||||
}
|
||||
|
||||
# Find our icons
|
||||
icon_path = os.path.join(RESOURCES, '.icons')
|
||||
norm_base = icon_path.replace('\\', '/') + '/'
|
||||
for result in glob.glob(icon_path.replace('\\', '/') + '/**/*.svg', recursive=True):
|
||||
name = ':{}:'.format(result.replace('\\', '/').replace(norm_base, '', 1).replace('/', '-').lstrip('.')[:-4])
|
||||
if name not in index['emoji'] and name not in index['aliases']:
|
||||
# Easiest to just store the path and pull it out from the index
|
||||
index["emoji"][name] = {'name': name, 'path': result}
|
||||
|
||||
return index
|
||||
|
||||
|
||||
def to_svg(index, shortname, alias, uc, alt, title, category, options, md):
|
||||
"""Return SVG element."""
|
||||
|
||||
is_unicode = uc is not None
|
||||
|
||||
if is_unicode:
|
||||
svg_path = TWEMOJI_SVG_CDN
|
||||
|
||||
attributes = {
|
||||
"class": options.get('classes', index),
|
||||
"alt": alt,
|
||||
"src": "%s%s.svg" % (
|
||||
options.get('image_path', svg_path),
|
||||
uc
|
||||
)
|
||||
}
|
||||
|
||||
if title:
|
||||
attributes['title'] = title
|
||||
|
||||
add_attriubtes(options, attributes)
|
||||
|
||||
return etree.Element("img", attributes)
|
||||
else:
|
||||
el = etree.Element('span', {"class": options.get('classes', index)})
|
||||
svg_path = md.inlinePatterns['emoji'].emoji_index['emoji'][shortname]['path']
|
||||
with codecs.open(svg_path, 'r', encoding='utf-8') as f:
|
||||
el.text = md.htmlStash.store(f.read())
|
||||
return el
|
@ -103,8 +103,8 @@ markdown_extensions:
|
||||
- pymdownx.critic
|
||||
- pymdownx.details
|
||||
- pymdownx.emoji:
|
||||
emoji_index: !!python/name:material.emoji.material
|
||||
emoji_generator: !!python/name:material.emoji.to_svg
|
||||
emoji_index: !!python/name:pymdownx.emoji.twemoji
|
||||
emoji_generator: !!python/name:pymdownx.emoji.to_svg
|
||||
# - pymdownx.highlight:
|
||||
# linenums_style: pymdownx-inline
|
||||
- pymdownx.inlinehilite
|
||||
|
67
src/emoji.py
67
src/emoji.py
@ -1,67 +0,0 @@
|
||||
"""
|
||||
Emoji extras for Material.
|
||||
|
||||
Override the Twemoji Index with an extended version that includes short names for Material icons, Fontawesome, etc.
|
||||
"""
|
||||
import os
|
||||
import glob
|
||||
import copy
|
||||
from pymdownx import twemoji_db
|
||||
from pymdownx.emoji import TWEMOJI_SVG_CDN, add_attriubtes
|
||||
import codecs
|
||||
import xml.etree.ElementTree as etree
|
||||
|
||||
RESOURCES = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
|
||||
def material():
|
||||
"""Provide a copied Twemoji index with additional codes for Material included icons."""
|
||||
|
||||
# Copy the Twemoji index
|
||||
index = {
|
||||
"name": 'twemoji',
|
||||
"emoji": copy.deepcopy(twemoji_db.emoji),
|
||||
"aliases": copy.deepcopy(twemoji_db.aliases)
|
||||
}
|
||||
|
||||
# Find our icons
|
||||
icon_path = os.path.join(RESOURCES, '.icons')
|
||||
norm_base = icon_path.replace('\\', '/') + '/'
|
||||
for result in glob.glob(icon_path.replace('\\', '/') + '/**/*.svg', recursive=True):
|
||||
name = ':{}:'.format(result.replace('\\', '/').replace(norm_base, '', 1).replace('/', '-').lstrip('.')[:-4])
|
||||
if name not in index['emoji'] and name not in index['aliases']:
|
||||
# Easiest to just store the path and pull it out from the index
|
||||
index["emoji"][name] = {'name': name, 'path': result}
|
||||
|
||||
return index
|
||||
|
||||
|
||||
def to_svg(index, shortname, alias, uc, alt, title, category, options, md):
|
||||
"""Return SVG element."""
|
||||
|
||||
is_unicode = uc is not None
|
||||
|
||||
if is_unicode:
|
||||
svg_path = TWEMOJI_SVG_CDN
|
||||
|
||||
attributes = {
|
||||
"class": options.get('classes', index),
|
||||
"alt": alt,
|
||||
"src": "%s%s.svg" % (
|
||||
options.get('image_path', svg_path),
|
||||
uc
|
||||
)
|
||||
}
|
||||
|
||||
if title:
|
||||
attributes['title'] = title
|
||||
|
||||
add_attriubtes(options, attributes)
|
||||
|
||||
return etree.Element("img", attributes)
|
||||
else:
|
||||
el = etree.Element('span', {"class": options.get('classes', index)})
|
||||
svg_path = md.inlinePatterns['emoji'].emoji_index['emoji'][shortname]['path']
|
||||
with codecs.open(svg_path, 'r', encoding='utf-8') as f:
|
||||
el.text = md.htmlStash.store(f.read())
|
||||
return el
|
Loading…
Reference in New Issue
Block a user