Skip to content

Commit b58530e

Browse files
committed
docs
1 parent 478f02d commit b58530e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+885
-0
lines changed

.github/workflows/build-mkdocs.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: build-mkdocs
2+
on:
3+
push:
4+
branches:
5+
- main
6+
permissions:
7+
contents: write
8+
jobs:
9+
deploy:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
- uses: actions/setup-python@v5
14+
with:
15+
python-version: 3.x
16+
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
17+
- uses: actions/cache@v4
18+
with:
19+
key: mkdocs-material-${{ env.cache_id }}
20+
path: .cache
21+
restore-keys: |
22+
mkdocs-material-
23+
- run: pip install \
24+
mkdocs-material \
25+
mkdocs-minify-plugin \
26+
"mkdocs-material[imaging]" \
27+
mkdocs-macros-plugin \
28+
mkdocs-glightbox \
29+
mkdocs-badges
30+
- name: Deploy
31+
run: mkdocs gh-deploy --force
32+
working-directory: documentation
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
libraries:
2+
Utilities:
3+
- name: CacheFileProvider
4+
link: https://mflisar.github.io/CacheFileProvider
5+
maven: io.github.mflisar.cachefileprovider/library
6+
description: This is a minimal library with a <b>few lines of code</b> and without dependencies that offers a simple file provider (simple read only access for sharing files with other apps).
7+
- name: FeedbackManager
8+
link: https://mflisar.github.io/FeedbackManager
9+
maven: io.github.mflisar.feedbackmanager/library
10+
description: This is a very small library that allows you to <b>send feedback</b> from an app <b>without internet permission</b> via email, either directly or via an unintrusive notification.
11+
- name: Toolbox
12+
link: https://github.com/MFlisar/Toolbox
13+
maven: io.github.mflisar.toolbox/core
14+
description: My personal toolbox library
15+
Libraries:
16+
- name: KotBilling
17+
link: https://mflisar.github.io/KotBilling
18+
maven: io.github.mflisar.kotbilling/library
19+
description: A kotlin coroutine based solution for handling in app purchases for <b>billing library version 7</b>.
20+
- name: KotPreferences
21+
link: https://mflisar.github.io/KotPreferences
22+
maven: io.github.mflisar.kotpreferences/core
23+
description: With this library you can declare preferences via <b>kotlin delegates</b> and observe and update them via <b>kotlin flows</b>. This works with any storage implementation, an implementation for JetPack DataStore is provided already.
24+
- name: Lumberjack
25+
link: https://mflisar.github.io/Lumberjack
26+
#image: https://raw.githubusercontent.com/MFlisar/Lumberjack/master/screenshots/compose-viewer1.jpg
27+
maven: io.github.mflisar.lumberjack/core
28+
description: This is a <b>full logging library</b> with a build in way to log to <b>console</b>, <b>file</b> or any <b>custom</b> place as well as optional extensions to send a log file via mail or show it on the device.
29+
Compose:
30+
- name: ComposeChangelog
31+
link: https://mflisar.github.io/ComposeChangelog
32+
image: https://raw.githubusercontent.com/MFlisar/ComposeChangelog/main/documentation/docs/screenshots/overview.jpg
33+
maven: io.github.mflisar.composechangelog/core
34+
description: This library offers you a a <b>changelog dialog</b> for compose including the ability to show new logs on app start only as well as filtering and customisation.
35+
- name: ComposeColors
36+
link: https://mflisar.github.io/ComposeColors
37+
image: https://raw.githubusercontent.com/MFlisar/ComposeColors/main/documentation/docs/screenshots/material.png
38+
maven: io.github.mflisar.composecolors/core
39+
description: A simple collection of colors that can be used inside any KMP compose project.
40+
- name: ComposeDebugDrawer
41+
link: https://mflisar.github.io/ComposeDebugDrawer
42+
image: https://raw.githubusercontent.com/MFlisar/ComposeDebugDrawer/main/documentation/docs/screenshots/demo2.jpg
43+
maven: io.github.mflisar.composedebugdrawer/core
44+
description: This library offers you a <b>simple</b> and easily extendable <b>debug drawer</b>.
45+
- name: ComposeDialogs
46+
link: https://mflisar.github.io/ComposeDialogs
47+
image: https://raw.githubusercontent.com/MFlisar/ComposeDialogs/main/documentation/docs/screenshots/overview.jpg
48+
maven: io.github.mflisar.composedialogs/core
49+
description: A compose framework for <b>modal dialogs</b>.
50+
- name: ComposePreferences
51+
link: https://mflisar.github.io/ComposePreferences
52+
image: https://raw.githubusercontent.com/MFlisar/ComposePreferences/main/documentation/docs/screenshots/overview.jpg
53+
maven: io.github.mflisar.composepreferences/core
54+
description: This library offers you <b>preference screens</b> for compose including the ability of endless nesting subscreens as well as simple integration of custom preferences.
55+
- name: ComposeThemer
56+
link: https://mflisar.github.io/ComposeThemer
57+
image: https://raw.githubusercontent.com/MFlisar/ComposeThemer/main/documentation/docs/screenshots/demo.gif
58+
maven: io.github.mflisar.composethemer/core
59+
description: This is a <b>full compose theme engine</b> that handles applying a theme as well as updating the system ui elements. Extendible and allows to simply apply user selected themes inside your app.

documentation/_data/project.yml

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
# -------
2+
# Library
3+
# -------
4+
5+
library:
6+
name: ComposePreferences
7+
api: 21
8+
github: MFlisar/ComposePreferences
9+
maven: io.github.mflisar.composepreferences
10+
maven-main-library: core
11+
multiplatform: true
12+
screenshots:
13+
- name: Changelog
14+
images:
15+
- ./screenshots/overview.jpg
16+
branch: main
17+
demo: true
18+
19+
# ------------
20+
# Dependencies
21+
# ------------
22+
23+
# optional
24+
dependencies:
25+
compose:
26+
cmp: 1.7.1
27+
compose: 1.7.1
28+
material3: 1.3.1
29+
experimental: true
30+
31+
# -------------
32+
# Module
33+
# -------------
34+
35+
# GRUPPEN - optional: nur bei mehreren Modulen benötigt!
36+
groups:
37+
- name: core
38+
label: Core
39+
gradle-comment: core
40+
- name: screens
41+
label: Screens
42+
gradle-comment: screens
43+
- name: extensions
44+
label: Extensions
45+
gradle-comment: extensions
46+
47+
modules:
48+
- name: core
49+
group: core
50+
description: the core module to show a changelog
51+
optional: false
52+
platforms:
53+
android: true
54+
ios: true
55+
jvm: false
56+
info:
57+
dependencies: []
58+
- name: screen-bool
59+
group: screens
60+
description: a boolean preference screen
61+
optional: true
62+
platforms:
63+
android: true
64+
ios: true
65+
jvm: false
66+
info:
67+
dependencies: []
68+
- name: screen-button
69+
group: screens
70+
description: a button preference screen
71+
optional: true
72+
platforms:
73+
android: true
74+
ios: true
75+
jvm: false
76+
info:
77+
dependencies: []
78+
- name: screen-input
79+
group: screens
80+
description: an input preference screen
81+
optional: true
82+
platforms:
83+
android: true
84+
ios: true
85+
jvm: false
86+
info:
87+
dependencies:
88+
- name: ComposeDialogs
89+
link: https://github.com/MFlisar/ComposeDialogs
90+
version: 2.0.0
91+
- name: screen-color
92+
group: screens
93+
description: a color preference screen
94+
optional: true
95+
platforms:
96+
android: true
97+
ios: true
98+
jvm: false
99+
info:
100+
dependencies:
101+
- name: ComposeDialogs
102+
link: https://github.com/MFlisar/ComposeDialogs
103+
version: 2.0.0
104+
- name: screen-date
105+
group: screens
106+
description: a date preference screen
107+
optional: true
108+
platforms:
109+
android: true
110+
ios: true
111+
jvm: false
112+
info:
113+
dependencies:
114+
- name: ComposeDialogs
115+
link: https://github.com/MFlisar/ComposeDialogs
116+
version: 2.0.0
117+
- name: screen-time
118+
group: screens
119+
description: an input preference screen
120+
optional: true
121+
platforms:
122+
android: true
123+
ios: true
124+
jvm: false
125+
info:
126+
dependencies:
127+
- name: ComposeDialogs
128+
link: https://github.com/MFlisar/ComposeDialogs
129+
version: 2.0.0
130+
- name: screen-list
131+
group: screens
132+
description: a list preference screen
133+
optional: true
134+
platforms:
135+
android: true
136+
ios: true
137+
jvm: false
138+
info:
139+
dependencies:
140+
- name: ComposeDialogs
141+
link: https://github.com/MFlisar/ComposeDialogs
142+
version: 2.0.0
143+
- name: screen-number
144+
group: screens
145+
description: a number preference screen
146+
optional: true
147+
platforms:
148+
android: true
149+
ios: true
150+
jvm: false
151+
info:
152+
dependencies:
153+
- name: ComposeDialogs
154+
link: https://github.com/MFlisar/ComposeDialogs
155+
version: 2.0.0
156+
- name: extension-kotpreferences
157+
group: extensions
158+
description: an extension to use KotPreferences inside ComposePreferences
159+
optional: true
160+
platforms:
161+
android: true
162+
ios: true
163+
jvm: false
164+
info:
165+
dependencies:
166+
- name: ComposeDialogs
167+
link: https://github.com/MFlisar/KotPreferences
168+
version: 0.7.2

documentation/_include/demo.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{% if project["library"]["demo"] %}
2+
3+
## :dna: Demo
4+
5+
A full [demo](https://github.com/{{ project["library"]["github"] }}/tree/{{ project["library"]["branch"] }}/demo){:target="_blank"} is included inside the demo module, it shows nearly every usage with working examples.
6+
7+
{% endif %}
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
{% if project["dependencies"] is defined and project["dependencies"]["compose"] is defined %}
2+
3+
## Compose
4+
5+
| Dependency | Version | Infos |
6+
|:---------------------:|:-------:|:----------------------------------------------:|
7+
| Compose Multiplatform | `{{ project["dependencies"]["compose"]["cmp"] }}` | Uses compose `{{ project["dependencies"]["compose"]["compose"] }}` and material3 `{{ project["dependencies"]["compose"]["material3"] }}` |
8+
9+
{% if project["dependencies"]["compose"]["experimental"] %}
10+
11+
!!! warning
12+
13+
I try to use as few experimental APIs as possible, but this library does use a few experimental APIs which are still marked as experimental in material3 `{{ project["dependencies"]["compose"]["material3"] }}`. I will provide new versions as soon as possible if experimental APIs change or become stable.
14+
15+
{% endif %}
16+
17+
{% endif %}
18+
19+
{% macro row_dependencies(dependencies) %}
20+
{% if dependencies|length > 0 %}
21+
<td>
22+
{% for d in dependencies %}
23+
<a href={{ d["link"] }} target="_blank">{{ d["name"] }}</a><br>
24+
{% endfor %}
25+
</td>
26+
<td>
27+
{% for d in dependencies %}
28+
<code>{{ d["version"] }}</code><br>
29+
{% endfor %}
30+
</td>
31+
{% else %}
32+
<td>-</td>
33+
<td></td>
34+
{% endif %}
35+
{% endmacro %}
36+
37+
{% if project["modules"] is not defined or project["modules"] | length == 1 %}
38+
{% if project["modules"] is not defined or project["modules"][0]["dependencies"] | length == 0 %}
39+
This library does not have any dependencies!
40+
{% else %}
41+
This library does have following dependencies.
42+
<table>
43+
<tr>
44+
<th>Dependency</th>
45+
<th>Version</th>
46+
</tr>
47+
{% for dependency in project["modules"][0]["dependencies"] -%}
48+
{{ row_dependencies([dependency]) }}
49+
{% endfor %}
50+
</table>
51+
{% endif %}
52+
{% else %}
53+
54+
## Modules
55+
56+
<table>
57+
<tr>
58+
<th>Module</th>
59+
<th>Dependency</th>
60+
<th>Version</th>
61+
</tr>
62+
63+
{% for group in project["groups"] %}
64+
65+
<tr><td colspan="3" style="background-color:var(--md-primary-fg-color--light);">{{ group["label"] }}</td></tr>
66+
67+
{% for module in project["modules"] %}
68+
{% if module["group"] == group["name"] %}
69+
70+
<tr>
71+
<td><code>{{ module["name"] }}</code></td>
72+
73+
{% if module["dependencies"]|length > 0 %}
74+
<td>
75+
{% for d in module["dependencies"] %}
76+
<a href={{ d["link"] }} target="_blank">{{ d["name"] }}</a><br>
77+
{% endfor %}
78+
</td>
79+
<td>
80+
{% for d in module["dependencies"] %}
81+
<code>{{ d["version"] }}</code><br>
82+
{% endfor %}
83+
</td>
84+
{% else %}
85+
<td>-</td>
86+
<td></td>
87+
{% endif %}
88+
</tr>
89+
90+
{% endif %}
91+
{% endfor %}
92+
93+
{% endfor %}
94+
95+
</table>
96+
97+
{% endif %}

documentation/_include/description.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{% for key, value in other_projects["libraries"].items() %}
2+
{% for prj in value %}
3+
{% if prj["name"] == project["library"]["name"] %}
4+
{{ prj["description"] }}
5+
{% endif %}
6+
{% endfor %}
7+
{% endfor %}

documentation/_include/gradle.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
This library is distributed via [maven central](https://central.sonatype.com/){:target="_blank"}.
2+
3+
Add dependencies like following to use this library inside your project.
4+
5+
{% include 'parts/gradle-single.md' %}
6+
{% include 'parts/gradle-multi.md' %}

documentation/_include/header.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[![Maven](https://img.shields.io/maven-central/v/{{ project["library"]["maven"] }}/{{ project["library"]["maven-main-library"] }}?style=for-the-badge&color=blue)](https://central.sonatype.com/namespace/{{ project["library"]["maven"] }}){:target="_blank"}
2+
![API](https://img.shields.io/badge/api-{{ project["library"]["api"] }}%2B-brightgreen.svg?style=for-the-badge)
3+
![Kotlin](https://img.shields.io/github/languages/top/{{ project["library"]["github"] }}.svg?style=for-the-badge&color=blueviolet)
4+
{% if page.meta.multiplatform -%}
5+
![KMP](https://img.shields.io/badge/Kotlin_Multiplatform-blue?style=for-the-badge&label=Kotlin)
6+
{%- endif -%}
7+
[![License](https://img.shields.io/github/license/{{ project["library"]["github"] }}?style=for-the-badge)](https://github.com/{{ project["library"]["github"] }}/blob/{{ project["library"]["branch"] }}/LICENSE){:target="_blank"}
8+
9+
<h1 align="center"><b>{{ project["library"]["name"] }}</b></h1>
10+

0 commit comments

Comments
 (0)