Skip to content

Commit

Permalink
Merge pull request #67 from daizutabi/feature-template
Browse files Browse the repository at this point in the history
Feature template
  • Loading branch information
daizutabi authored Feb 8, 2024
2 parents f9db0f6 + c62fd8d commit e12abbe
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 84 deletions.
8 changes: 4 additions & 4 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ nav:
- usage/object.md
- usage/page.md
- usage/config.md
- API: <api>/mkapi.***
# - API: <api>/mkapi.***
- Examples: <api>/examples.**
# - Schemdraw: <api>/schemdraw.***
# - Polars: <api>/polars.***
# - Altair: <api>/altair.***
- Schemdraw: <api>/schemdraw.***
- Polars: <api>/polars.***
- Altair: <api>/altair.***
extra_css:
- stylesheets/extra.css
2 changes: 1 addition & 1 deletion src/mkapi/objects.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ def create_attribute(
if doc.text.str and (lines := doc.text.str.splitlines()): # noqa: SIM102
if ":" in lines[0]:
_, lines[0] = lines[0].split(":", maxsplit=1)
doc.text.str = "\n".join(lines)
doc.text.str = "\n".join(lines).strip()
else:
doc = Docstring("", Type(), assign.text, [])
name, type_, default = assign.name, assign.type, assign.default
Expand Down
64 changes: 25 additions & 39 deletions src/mkapi/templates/object.jinja2
Original file line number Diff line number Diff line change
Expand Up @@ -25,55 +25,41 @@
<span class="mkapi-colon">:</span>
<span class="mkapi-object-type">{{ obj.type.markdown|safe }}</span>
{%- endif -%}
{{ "\n" }}</p>
</p>

{% if obj.kind in ["class", "dataclass"] and obj.bases -%}
<p class="mkapi-object-bases" markdown="1">Bases :
{% for base in obj.bases %}<span class="mkapi-object-base">{{ base.type.markdown|safe }}</span>
{%- if not loop.last %}<span class="mkapi-comma">, </span>{% else %}
</p>{% endif %}
{% endfor -%}
{% endif %}
{% for base in obj.bases %}<span class="mkapi-object-base">{{ base.type.markdown|safe }}</span>
{%- if not loop.last %}<span class="mkapi-comma">, </span>{% endif %}
{% endfor %}</p>
{% endif -%}

{% if doc.text.markdown %}
<div class="mkapi-doc-text" markdown="1">
{{ doc.text.markdown|safe }}
</div>
{% endif %}

{% for section in doc.sections if section.name != "Bases" %}

{% if section.name and not section.kind %}
<div class="mkapi-section-name mkapi-section-{{ section.name|lower }}">
{{ section.name }}
</div>
{% endif %}
{% for section in doc.sections %}
{%- if section.name and not section.kind -%}
<div class="mkapi-section"><span class="mkapi-section-name">{{ section.name }}</span></div>
{%- endif %}

{% if section.text.markdown %}
<div class="mkapi-section-text{% if section.name %} mkapi-section-{{ section.name|lower }}{% endif %}" markdown="1">
{{ section.text.markdown|safe }}
</div>
{% endif %}

{% if section.items %}<ul class="mkapi-section-items" markdown="1">{% endif %}

{% for item in section.items %}
<li class="mkapi-section-item" markdown="block">
{%- if item.name -%}
<span class="mkapi-item-name">{{ item.name.replace("_", "\\_") }}</span>
{%- endif -%}
{%- if item.name and item.type.markdown %} : {% endif %}
{%- if item.type.markdown -%}
<span class="mkapi-item-type">{{ item.type.markdown|safe }}</span>
{%- endif -%}
{%- if item.text.markdown %}
&mdash;
{% if section.items -%}
<ul markdown="1">
{% for item in section.items %}
<li markdown="block">
{% if item.name -%}
<span class="mkapi-item-name">{{ item.name.replace("_", "\\_") }}</span>
{%- endif -%}
{%- if item.name and item.type.markdown %} : {% endif %}
{% if item.type.markdown -%}
<span class="mkapi-item-type">{{ item.type.markdown|safe }}</span>
{%- endif -%}
{%- if item.text.markdown %} &mdash;
{{ item.text.markdown|safe}}
{%- endif %}
</li>
{%- endif %}
</li>
{% endfor %}

{% if section.items %}</ul>{% endif %}

</ul>
{% endif %}
{% endfor %}
</div>
41 changes: 22 additions & 19 deletions src/mkapi/themes/mkapi-material.css
Original file line number Diff line number Diff line change
Expand Up @@ -31,35 +31,35 @@ p.mkapi-object {
font-weight: 600;
font-size: 1.1em;
}
.mkapi-object-name .prefix {
.mkapi-prefix {
color: var(--md-code-hl-name-color);
}
.mkapi-object-name .dot {
.mkapi-dot {
color: var(--md-code-hl-comment-color);
}
.mkapi-signature .arg {
.mkapi-arg {
color: var(--md-code-hl-name-color);
font-style: italic;
}
.mkapi-signature .default, .ann, .return, .star {
.mkapi-default, .mkapi-ann, .mkapi-return, .mkapi-star {
color: var(--md-code-hl-variable-color);
}
.mkapi-signature .paren {
.mkapi-paren {
color: var(--md-code-hl-punctuation-color);
margin-left: 2px;
margin-right: 2px;
}
.mkapi-signature .sep {
.mkapi-star, .mkapi-slash {
color: var(--md-code-hl-punctuation-color);
margin-left: 0px;
margin-right: 2px;
}
.mkapi-signature .comma, .colon {
.mkapi-comma, .mkapi-colon {
color: var(--md-code-hl-punctuation-color);
margin-left: 2px;
margin-right: 0px;
}
.mkapi-signature .equal, .arrow {
.mkapi-equal, .mkapi-arrow {
color: var(--md-code-hl-punctuation-color);
margin-left: 0px;
margin-right: 0px;
Expand All @@ -69,24 +69,27 @@ p.mkapi-object-bases {
font-size: 85%;
margin-block-start: 0px;
}
.mkapi-section {
margin-bottom: 8px;

}
.mkapi-section + p {
margin-block-start: 0px;
}
.mkapi-section + ul ,
.mkapi-section + ol {
margin-block-start: 0px;
}

.mkapi-section-name {
color: var(--md-default-fg-color--light);
border-bottom: thin solid var(--md-default-fg-color--light);
font-size: 1.05em;
font-weight: 400;
margin-top: 16px;
}
ul.mkapi-section-items {
margin-top: 6pt;
}
.mkapi-item-name {
font-weight: 600;
}
.mkapi-item-type,.mkapi-object-type {
color: var(--md-code-hl-variable-color);
}
li.mkapi-section-item li {
margin-bottom: 2px;
.mkapi-item-type, .mkapi-object-type {
color: var(--md-default-fg-color--light);
}
.mkapi-example-input pre {
margin-bottom: 0px;
Expand Down
44 changes: 23 additions & 21 deletions tests/test_renderers.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def test_render_moduled():
s = '<p class="mkapi-object" markdown="1">\n <'
assert s in m
assert '>\n <span class="mkapi-object-kind">package</span>\n <' in m
assert "styles</span></span>\n</p>" in m
assert "styles</span></span></p>" in m


def test_render_method():
Expand All @@ -49,7 +49,7 @@ def test_render_method():
assert s in m
assert '>\n <span class="mkapi-object-kind">method</span>\n <' in m
assert '>\n <span class="mkapi-object-name"><span' in m
assert '><span class="mkapi-paren">)</span></span>\n</p>' in m
assert '><span class="mkapi-paren">)</span></span></p>' in m


def test_render_attribute():
Expand All @@ -60,37 +60,39 @@ def test_render_attribute():
assert s in m
assert '>\n <span class="mkapi-object-kind">attribute</span>\n <' in m
assert '</span></span>\n <span class="mkapi-colon">:</span>\n' in m
assert ':</span>\n <span class="mkapi-object-type">int</span>\n</p>' in m
assert ':</span>\n <span class="mkapi-object-type">int</span></p>' in m


def test_render_class():
obj = get_object("mkapi.objects.Class")
assert isinstance(obj, Class)
bases = obj.bases
# obj.bases = obj.bases * 3
assert obj
obj.bases = bases * 2
m = render(obj, 2, [])
s = "</span></span>\n</p>\n"
s = "</span></span></p>\n"
assert s in m
i = m.index(s)
print(m[i : i + 500])
# assert 0

assert '.Callable]</span><span class="mkapi-comma">, </span>\n' in m
# assert '.Callable]</span>\n</p>\n\n<div class="mkapi-doc-text"' in m
obj.bases = bases
# m = render(obj, 2, [])
# s = '<p class="mkapi-object" markdown="1">\n <'
# assert s in m
# assert '>\n <span class="mkapi-object-kind">method</span>\n <' in m
# assert '>\n <span class="mkapi-object-name"><span' in m
# assert '><span class="mkapi-paren">)</span></span>\n</p>' in m


# i = m.index(s)
# print(m[i : i + 500])
# def test_render_doc_text():
# obj = get_object("examples.styles.google.ExampleClass")
# assert obj
# m = render(obj, 2, [])
# s = '<div class="mkapi-doc-text" markdown="1">\nThe summary'
# assert s in m

# assert 0
# # name = "polars.config.Config.set_tbl_cell_alignment"
# # obj = get_object(name)

# def test_render_section():
# obj = get_object("examples.styles.google.ExampleClass")
# assert obj
# m = render(obj, 2, [])
# print(m)
# assert '</div>\n\n<div class="mkapi-section"' in m
# assert '</div>\n\n<ul class="mkapi-section-items" markdown="1">' in m
# assert "\n </li>\n\n <li" in m
# assert "\n </li>\n\n</ul>\n" in m


# def test_render_sourcelink():
Expand Down

0 comments on commit e12abbe

Please sign in to comment.