Skip to content

Commit f3c8fa4

Browse files
authored
Put docs pages into groups, add tutorials to docs (#1007)
* Put pages into subcategories, include tutorials * Fix assets * Update submodule
1 parent 0259abe commit f3c8fa4

File tree

5 files changed

+102
-54
lines changed

5 files changed

+102
-54
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "guides/membrane_tutorials"]
2+
path = guides/membrane_tutorials
3+
url = https://github.com/membraneframework/membrane_tutorials.git

guides/membrane_tutorials

Submodule membrane_tutorials added at 1ecc2ad
File renamed without changes.
File renamed without changes.

mix.exs

Lines changed: 98 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -59,21 +59,19 @@ defmodule Membrane.Mixfile do
5959
defp docs do
6060
[
6161
main: "readme",
62-
extras: [
63-
"README.md",
64-
"CHANGELOG.md",
65-
"CONTRIBUTING.md",
66-
"guides/upgrading/v0.11.md",
67-
"guides/upgrading/v0.12.md",
68-
"guides/upgrading/v1.0.0-rc0.md",
69-
"guides/upgrading/v1.0.0-rc1.md",
70-
"guides/upgrading/v1.0.0.md",
71-
"guides/components_lifecycle.md",
72-
"guides/timer.md",
73-
LICENSE: [title: "License"]
74-
],
62+
extras: extras(),
7563
formatters: ["html"],
7664
source_ref: @source_ref,
65+
assets: %{
66+
"guides/membrane_tutorials/get_started_with_membrane/assets" => "assets",
67+
"guides/membrane_tutorials/basic_pipeline/assets" => "assets",
68+
"guides/membrane_tutorials/basic_pipeline_extension/assets" => "assets",
69+
"guides/membrane_tutorials/create_new_plugin/assets" => "assets",
70+
"guides/membrane_tutorials/digital_video_introduction/assets" => "assets",
71+
"guides/membrane_tutorials/h264/assets" => "assets",
72+
"guides/membrane_tutorials/broadcasting/assets" => "assets",
73+
"guides/membrane_tutorials/glossary/assets" => "assets"
74+
},
7775
nest_modules_by_prefix: [
7876
Membrane.Bin,
7977
Membrane.Element,
@@ -89,47 +87,93 @@ defmodule Membrane.Mixfile do
8987
Membrane.RCPipeline,
9088
Membrane.RCMessage
9189
],
92-
groups_for_modules: [
93-
Pipeline: [~r/^Membrane\.Pipeline($|\.)/],
94-
"RC Pipeline": [
95-
~r/^Membrane\.(RCPipeline)($|\.)/,
96-
~r/^Membrane\.(RCMessage)($|\.)/
97-
],
98-
Bin: [~r/^Membrane\.Bin($|\.)/],
99-
Element: [
100-
~r/^Membrane\.Filter($|\.)/,
101-
~r/^Membrane\.Endpoint($|\.)/,
102-
~r/^Membrane\.Sink($|\.)/,
103-
~r/^Membrane\.Source($|\.)/,
104-
~r/^Membrane\.Element($|\.)/
105-
],
106-
"Helper Elements": [
107-
~r/^Membrane\.Connector($|\.)/,
108-
~r/^Membrane\.Fake($|\.)/,
109-
~r/^Membrane\.Debug($|\.)/,
110-
~r/^Membrane\.Tee($|\.)/,
111-
~r/^Membrane\.Funnel($|\.)/,
112-
~r/^Membrane\.FilterAggregator($|\.)/
113-
],
114-
Parent: [~r/^Membrane\.(Parent|ChildrenSpec)($|\.)/],
115-
Child: [~r/^Membrane\.(Child|ChildEntry)($|\.)/],
116-
Communication: [
117-
~r/^Membrane\.(Buffer|Payload|StreamFormat|Event|EventProtocol|ChildNotification|ParentNotification|Pad|KeyframeRequestEvent|RemoteStream)($|\.)/
118-
],
119-
Logging: [~r/^Membrane\.Logger($|\.)/],
120-
Telemetry: [~r/^Membrane\.Telemetry($|\.)/],
121-
Testing: [~r/^Membrane\.Testing($|\.)/],
122-
Utils: [
123-
~r/^Membrane\.Clock($|\.)/,
124-
~r/^Membrane\.Sync($|\.)/,
125-
~r/^Membrane\.Time($|\.)/,
126-
~r/^Membrane\.Playback($|\.)/,
127-
~r/^Membrane\.ComponentPath($|\.)/,
128-
~r/^Membrane\.ResourceGuard($|\.)/,
129-
~r/^Membrane\.UtilitySupervisor($|\.)/
130-
],
131-
Errors: [~r/Error$/]
132-
]
90+
groups_for_modules: groups_for_modules(),
91+
groups_for_extras: groups_for_extras()
92+
]
93+
end
94+
95+
defp extras do
96+
[
97+
"README.md",
98+
"CHANGELOG.md",
99+
"CONTRIBUTING.md",
100+
Path.wildcard("guides/**/*.md")
101+
|> Enum.reject(&(Path.basename(&1) in ["README.md", "index.md", "1_preface.md"]))
102+
|> Enum.map(&{String.to_atom(&1), [title: reformat_tutorial_title(&1)]}),
103+
LICENSE: [title: "License"]
104+
]
105+
|> List.flatten()
106+
end
107+
108+
defp reformat_tutorial_title(filename) do
109+
{first_letter, rest} =
110+
filename
111+
|> Path.basename()
112+
|> String.replace(~r/^\d+_/, "")
113+
|> String.replace("_", " ")
114+
|> String.trim_trailing(".md")
115+
|> String.next_grapheme()
116+
117+
String.upcase(first_letter) <> rest
118+
end
119+
120+
defp groups_for_modules do
121+
[
122+
Pipeline: [~r/^Membrane\.Pipeline($|\.)/],
123+
"RC Pipeline": [
124+
~r/^Membrane\.(RCPipeline)($|\.)/,
125+
~r/^Membrane\.(RCMessage)($|\.)/
126+
],
127+
Bin: [~r/^Membrane\.Bin($|\.)/],
128+
Element: [
129+
~r/^Membrane\.Filter($|\.)/,
130+
~r/^Membrane\.Endpoint($|\.)/,
131+
~r/^Membrane\.Sink($|\.)/,
132+
~r/^Membrane\.Source($|\.)/,
133+
~r/^Membrane\.Element($|\.)/
134+
],
135+
"Helper Elements": [
136+
~r/^Membrane\.Connector($|\.)/,
137+
~r/^Membrane\.Fake($|\.)/,
138+
~r/^Membrane\.Debug($|\.)/,
139+
~r/^Membrane\.Tee($|\.)/,
140+
~r/^Membrane\.Funnel($|\.)/,
141+
~r/^Membrane\.FilterAggregator($|\.)/
142+
],
143+
Parent: [~r/^Membrane\.(Parent|ChildrenSpec)($|\.)/],
144+
Child: [~r/^Membrane\.(Child|ChildEntry)($|\.)/],
145+
Communication: [
146+
~r/^Membrane\.(Buffer|Payload|StreamFormat|Event|EventProtocol|ChildNotification|ParentNotification|Pad|KeyframeRequestEvent|RemoteStream)($|\.)/
147+
],
148+
Logging: [~r/^Membrane\.Logger($|\.)/],
149+
Telemetry: [~r/^Membrane\.Telemetry($|\.)/],
150+
Testing: [~r/^Membrane\.Testing($|\.)/],
151+
Utils: [
152+
~r/^Membrane\.Clock($|\.)/,
153+
~r/^Membrane\.Sync($|\.)/,
154+
~r/^Membrane\.Time($|\.)/,
155+
~r/^Membrane\.Playback($|\.)/,
156+
~r/^Membrane\.ComponentPath($|\.)/,
157+
~r/^Membrane\.ResourceGuard($|\.)/,
158+
~r/^Membrane\.UtilitySupervisor($|\.)/
159+
],
160+
Errors: [~r/Error$/]
161+
]
162+
end
163+
164+
defp groups_for_extras do
165+
[
166+
"Get started with Membrane":
167+
Path.wildcard("guides/membrane_tutorials/get_started_with_membrane/*.md"),
168+
"Intro to pipelines": Path.wildcard("guides/membrane_tutorials/basic_pipeline/*.md"),
169+
"Intro to pipelines - advanced concepts":
170+
Path.wildcard("guides/membrane_tutorials/basic_pipeline_extension/*.md"),
171+
"Creating plugins": Path.wildcard("guides/membrane_tutorials/create_new_plugin/*.md"),
172+
"Useful concepts": Path.wildcard("guides/useful_concepts/*.md"),
173+
H264: Path.wildcard("guides/membrane_tutorials/h264/*.md"),
174+
Broadcasting: Path.wildcard("guides/membrane_tutorials/broadcasting/*.md"),
175+
Glossary: Path.wildcard("guides/membrane_tutorials/glossary/*.md"),
176+
Upgrading: Path.wildcard("guides/upgrading/*.md")
133177
]
134178
end
135179

0 commit comments

Comments
 (0)