Skip to content

Commit 9ea4f20

Browse files
authored
upgrade to Documenter 1.0 (#33)
* upgrade to Documenter 1.0 * update doc * update citation informations * fix docs
1 parent 48820a3 commit 9ea4f20

File tree

7 files changed

+158
-113
lines changed

7 files changed

+158
-113
lines changed

CITATION.bib

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
@misc{ferranti2023fuzzylogicjl,
2-
title={FuzzyLogic.jl: a Flexible Library for Efficient and Productive Fuzzy Inference},
3-
author={Luca Ferranti and Jani Boutellier},
4-
year={2023},
5-
eprint={2306.10316},
6-
archivePrefix={arXiv},
7-
primaryClass={cs.AI}
8-
}
1+
@INPROCEEDINGS{ferranti2023fuzzylogicjl,
2+
author={Ferranti, Luca and Boutellier, Jani},
3+
booktitle={2023 IEEE International Conference on Fuzzy Systems (FUZZ)},
4+
title={FuzzyLogic.jl: A Flexible Library for Efficient and Productive Fuzzy Inference},
5+
year={2023},
6+
pages={1-5},
7+
doi={10.1109/FUZZ52849.2023.10309777}}

CITATION.cff

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,22 @@ type: software
88
authors:
99
- given-names: Luca
1010
family-names: Ferranti
11+
orcid: "https://orcid.org/0000-0001-5588-0920"
1112
identifiers:
1213
- type: doi
1314
value: 10.5281/zenodo.7570243
1415
repository-code: 'https://github.com/lucaferranti/FuzzyLogic.jl'
1516
license: MIT
1617
preferred-citation:
17-
type: article
18+
type: proceedings
1819
authors:
1920
- family-names: "Ferranti"
2021
given-names: "Luca"
2122
orcid: "https://orcid.org/0000-0001-5588-0920"
2223
- family-names: "Boutellier"
2324
given-names: "Jani"
2425
orcid: "https://orcid.org/0000-0001-7606-3655"
25-
journal: "arxiv:2306.10316"
26+
journal: "2023 IEEE International Conference on Fuzzy Systems (FUZZ)"
27+
doi: 10.1109/FUZZ52849.2023.10309777
2628
title: "FuzzyLogic.jl: a Flexible Library for Efficient and Productive Fuzzy Inference"
2729
year: 2023

README.md

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,53 @@
44
|:------:|:--------------:|:---------------:|:--------------:|:----------:|
55
|[![version][ver-img]][ver-url]|[![CI Status][ci-img]][ci-url]|[![Stable docs][stable-img]][stable-url]|[![contributing guidelines][contrib-img]][contrib-url]|[![bibtex][bibtex-img]][bibtex-url]
66
|[![Licese: MIT][license-img]][license-url]|[![Coverage][cov-img]][cov-url]|[![Dev docs][dev-img]][dev-url]|[![SciML Code Style][style-img]][style-url]|[![paper][paper-img]][paper-url]|
7-
|[![downloads][download-img]][download-url]|[![pkgeval-img]][pkgeval-url]||[![gitter-chat][chat-img]][chat-url]|[![zenodo][zenodo-img]][zenodo-url]
7+
|[![downloads][download-img]][download-url]|[![pkgeval-img]][pkgeval-url]|[![JuliaCon video][video-img]][video-url]|[![gitter-chat][chat-img]][chat-url]|[![zenodo][zenodo-img]][zenodo-url]
88

99
<p align="center">
1010
<img src="./docs/src/assets/logo.svg"/>
1111
</p>
1212

1313
A Julia library for fuzzy logic and applications.
1414

15+
If you use this in your research, please cite it as
16+
17+
```bibtex
18+
@INPROCEEDINGS{ferranti2023fuzzylogicjl,
19+
author={Ferranti, Luca and Boutellier, Jani},
20+
booktitle={2023 IEEE International Conference on Fuzzy Systems (FUZZ)},
21+
title={FuzzyLogic.jl: A Flexible Library for Efficient and Productive Fuzzy Inference},
22+
year={2023},
23+
pages={1-5},
24+
doi={10.1109/FUZZ52849.2023.10309777}}
25+
```
26+
27+
## Features
28+
29+
- **Rich!** Mamdani and Sugeno inference systems, both Type-1 and Type-2, several [membership functions](https://lucaferranti.github.io/FuzzyLogic.jl/stable/api/memberships) and [algoritms options](https://lucaferranti.github.io/FuzzyLogic.jl/stable/api/fis) available.
30+
- **Compatible!** Read your models from [IEC 61131-7 Fuzzy Control Language](https://ffll.sourceforge.net/fcl.htm), [IEEE 1855-2016 Fuzzy Markup Language](https://en.wikipedia.org/wiki/Fuzzy_markup_language) and Matlab Fuzzy toolbox `.fis` files.
31+
- **Expressive!** Clear Domain Specific Language to write your model as human readable Julia code
32+
- **Productive!** Several visualization tools to help debug and tune your model.
33+
- **Portable!** Compile your final model to Julia code.
34+
1535
## Installation
1636

17-
To install the package, open a Julia session and run
37+
1. If you haven't already, install Julia. The easiest way is to install [Juliaup](https://github.com/JuliaLang/juliaup#installation). This allows to easily manage julia versions.
38+
39+
2. Open the terminal and start a julia session by simply typing `julia`
40+
41+
3. Install the library by typing
1842

1943
```julia
2044
using Pkg; Pkg.add("FuzzyLogic")
2145
```
2246

23-
the package can then be loaded with
47+
4. The package can now be loaded (in the interactive REPL or in a script file) with the command
2448

2549
```julia
2650
using FuzzyLogic
2751
```
2852

29-
## Features
30-
31-
- **Rich!** Mamdani and Sugeno inference systems, both Type-1 and Type-2, several [membership functions](https://lucaferranti.github.io/FuzzyLogic.jl/stable/api/memberships) and [algoritms options](https://lucaferranti.github.io/FuzzyLogic.jl/stable/api/fis) available.
32-
- **Compatible!** Read your models from [IEC 61131-7 Fuzzy Control Language](https://ffll.sourceforge.net/fcl.htm), [IEEE 1855-2016 Fuzzy Markup Language](https://en.wikipedia.org/wiki/Fuzzy_markup_language) and Matlab Fuzzy toolbox `.fis` files.
33-
- **Expressive!** Clear Domain Specific Language to write your model as human readable Julia code
34-
- **Productive!** Several visualization tools to help debug and tune your model.
35-
- **Portable!** Compile your final model to Julia code.
53+
5. That's it, have fun!
3654

3755
## Quickstart example
3856

@@ -71,6 +89,8 @@ fis(service=1, food=2)
7189
- [**STABLE**][stable-url]: Documentation of the latest release
7290
- [**DEV**][dev-url]: Documentation of the version on main
7391

92+
[![JuliaCon video](https://img.youtube.com/vi/6WfX3e-aOBc/0.jpg)](https://youtu.be/6WfX3e-aOBc)
93+
7494
## Contributing
7595

7696
Contributions are welcome! Here is a small decision tree with useful links.
@@ -102,6 +122,9 @@ Contributions are welcome! Here is a small decision tree with useful links.
102122
[dev-img]: https://img.shields.io/badge/docs-dev-blue.svg
103123
[dev-url]: https://lucaferranti.github.io/FuzzyLogic.jl/dev/
104124

125+
[video-img]: https://img.shields.io/badge/JuliaCon-video-red.svg
126+
[video-url]: https://www.youtube.com/watch?v=6WfX3e-aOBc
127+
105128
[ci-img]: https://github.com/lucaferranti/FuzzyLogic.jl/actions/workflows/CI.yml/badge.svg?branch=main
106129
[ci-url]: https://github.com/lucaferranti/FuzzyLogic.jl/actions/workflows/CI.yml?query=branch%3Amain
107130

@@ -123,7 +146,7 @@ Contributions are welcome! Here is a small decision tree with useful links.
123146
[bibtex-img]: https://img.shields.io/badge/BibTeX-citation-orange
124147
[bibtex-url]: https://github.com/lucaferranti/FuzzyLogic.jl/blob/main/CITATION.bib
125148

126-
[paper-img]: https://img.shields.io/badge/arxiv-paper-blue
149+
[paper-img]: https://img.shields.io/badge/FUZZIEEE-paper-blue
127150
[paper-url]: https://arxiv.org/abs/2306.10316
128151

129152
[zenodo-img]: https://img.shields.io/badge/Zenodo-archive-blue

docs/Project.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ TestImages = "5e47fb64-e119-507b-a336-dd2b206d9990"
1212

1313
[compat]
1414
DocThemeIndigo = "0.1.3"
15+
Documenter = "1"
1516
ImageCore = "0.9.4"
1617
ImageFiltering = "0.7.3"
1718
Literate = "2.14"

docs/make.jl

Lines changed: 83 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const nbdir = joinpath(@__DIR__, "src", "notebooks") # output directory for note
2222
# fix edit links (only locally)
2323
function fix_edit_link(content)
2424
replace(content,
25-
"EditURL = \"<unknown>" => "EditURL = \"https://github.com/lucaferranti/FuzzyLogic.jl/blob/main")
25+
"EditURL = \"<unknown>" => "EditURL = \"https://github.com/lucaferranti/FuzzyLogic.jl/blob/main")
2626
end
2727

2828
# Adds link from markdown to notebook.
@@ -41,9 +41,9 @@ for (root, _, files) in walkdir(jldir), file in files
4141
ipath = joinpath(root, file)
4242
opath = splitdir(replace(ipath, jldir => mddir))[1]
4343
Literate.markdown(ipath, opath;
44-
preprocess = notebook_link(file),
45-
postprocess = IS_CI ? identity : fix_edit_link,
46-
credit = false)
44+
preprocess = notebook_link(file),
45+
postprocess = IS_CI ? identity : fix_edit_link,
46+
credit = false)
4747

4848
Literate.notebook(ipath, nbdir; execute = IS_CI, credit = false)
4949
end
@@ -55,32 +55,35 @@ end
5555
function generate_memberships()
5656
mfs = subtypes(FuzzyLogic.AbstractMembershipFunction)
5757
open(joinpath(@__DIR__, "src", "api", "memberships.md"), "w") do f
58-
write(f, """```@setup memberships
59-
using FuzzyLogic
60-
using Plots
61-
```
58+
write(f,
59+
"""```@setup memberships
60+
using FuzzyLogic
61+
using Plots
62+
```
6263
63-
# Membership functions
64+
# Membership functions
6465
65-
""")
66+
""")
6667
for mf in mfs
6768
sec = string(mf)[1:(end - 2)] * " membership function"
68-
write(f, """## $sec
69+
write(f,
70+
"""## $sec
6971
70-
```@docs
71-
$mf
72-
```
72+
```@docs
73+
$mf
74+
```
7375
74-
""")
76+
""")
7577
docstring = match(r"```julia\nmf = (.+)\n```", string(Docs.doc(mf)))
7678
if !isnothing(docstring)
7779
mfex = only(docstring.captures)
78-
write(f, """
79-
```@example memberships
80-
plot($mfex, 0, 10) # hide
81-
```
80+
write(f,
81+
"""
82+
```@example memberships
83+
plot($mfex, 0, 10) # hide
84+
```
8285
83-
""")
86+
""")
8487
end
8588
end
8689
end
@@ -94,32 +97,35 @@ function generate_norms()
9497
]
9598
titles = ["Conjuction", "Disjunction", "Implication"]
9699
open(joinpath(@__DIR__, "src", "api", "logical.md"), "w") do f
97-
write(f, """```@setup logicals
98-
using FuzzyLogic
99-
using Plots
100-
```
101-
102-
# Logical connectives
103-
""")
100+
write(f,
101+
"""```@setup logicals
102+
using FuzzyLogic
103+
using Plots
104+
```
105+
106+
# Logical connectives
107+
""")
104108
for (t, c) in zip(titles, connectives)
105-
write(f, """
106-
## $t methods
109+
write(f,
110+
"""
111+
## $t methods
107112
108-
""")
113+
""")
109114

110115
for ci in c
111-
write(f, """
112-
### $(nameof(ci))
113-
114-
```@docs
115-
$ci
116-
```
117-
118-
```@example logicals
119-
x = y = 0:0.01:1 # hide
120-
contourf(x, y, (x, y) -> $ci()(x, y)) # hide
121-
```
122-
""")
116+
write(f,
117+
"""
118+
### $(nameof(ci))
119+
120+
```@docs
121+
$ci
122+
```
123+
124+
```@example logicals
125+
x = y = 0:0.01:1 # hide
126+
contourf(x, y, (x, y) -> $ci()(x, y)) # hide
127+
```
128+
""")
123129
end
124130
end
125131
end
@@ -136,41 +142,41 @@ generate_norms()
136142
###############
137143

138144
makedocs(;
139-
modules = [FuzzyLogic], authors = "Luca Ferranti",
140-
sitename = "FuzzyLogic.jl",
141-
doctest = false, checkdocs = :exports, strict = true,
142-
format = Documenter.HTML(;
143-
assets = [
144-
DocThemeIndigo.install(FuzzyLogic),
145-
"assets/favicon.ico",
146-
],
147-
prettyurls = IS_CI, collapselevel = 1,
148-
canonical = "https://lucaferranti.github.io/FuzzyLogic.jl"),
149-
pages = [
150-
"Home" => "index.md",
151-
"Tutorials" => [
152-
"Build a Mamdani inference system" => "tutorials/mamdani.md",
153-
"Build a Sugeno inference system" => "tutorials/sugeno.md",
154-
"Build a type-2 inference system" => "tutorials/type2.md",
155-
],
156-
"Applications" => [
157-
"Edge detection" => "applications/edge_detector.md",
158-
],
159-
"API" => [
160-
"Inference system API" => [
161-
"Types" => "api/fis.md",
162-
"Logical connectives" => "api/logical.md",
163-
"Aggregation methods" => "api/aggregation.md",
164-
"Defuzzification methods" => "api/defuzzification.md",
165-
],
166-
"Membership functions" => "api/memberships.md",
167-
"Reading/Writing" => "api/readwrite.md",
168-
"Learning fuzzy models" => "api/genfis.md",
169-
"Plotting" => "api/plotting.md",
170-
],
171-
"Contributor's Guide" => "contributing.md",
172-
"Release notes" => "changelog.md",
173-
])
145+
modules = [FuzzyLogic], authors = "Luca Ferranti",
146+
sitename = "FuzzyLogic.jl",
147+
doctest = false, checkdocs = :exports,
148+
format = Documenter.HTML(;
149+
assets = [
150+
DocThemeIndigo.install(FuzzyLogic),
151+
"assets/favicon.ico",
152+
],
153+
prettyurls = IS_CI, collapselevel = 1,
154+
canonical = "https://lucaferranti.github.io/FuzzyLogic.jl"),
155+
pages = [
156+
"Home" => "index.md",
157+
"Tutorials" => [
158+
"Build a Mamdani inference system" => "tutorials/mamdani.md",
159+
"Build a Sugeno inference system" => "tutorials/sugeno.md",
160+
"Build a type-2 inference system" => "tutorials/type2.md",
161+
],
162+
"Applications" => [
163+
"Edge detection" => "applications/edge_detector.md",
164+
],
165+
"API" => [
166+
"Inference system API" => [
167+
"Types" => "api/fis.md",
168+
"Logical connectives" => "api/logical.md",
169+
"Aggregation methods" => "api/aggregation.md",
170+
"Defuzzification methods" => "api/defuzzification.md",
171+
],
172+
"Membership functions" => "api/memberships.md",
173+
"Reading/Writing" => "api/readwrite.md",
174+
"Learning fuzzy models" => "api/genfis.md",
175+
"Plotting" => "api/plotting.md",
176+
],
177+
"Contributor's Guide" => "contributing.md",
178+
"Release notes" => "changelog.md",
179+
])
174180

175181
##########
176182
# DEPLOY #

docs/setup.jl

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,3 @@ import Pkg
33
Pkg.activate(@__DIR__)
44
Pkg.develop(Pkg.PackageSpec(path = joinpath(@__DIR__, "..")))
55
Pkg.instantiate()
6-
7-
# TODO remove once Documenter 0.28 is released
8-
# this is to get both the edit link and a the github link
9-
Pkg.add(Pkg.PackageSpec(name = "Documenter", rev = "30baed5"))

0 commit comments

Comments
 (0)