From 61baeb18070be628a1def838899a7624e1ea9470 Mon Sep 17 00:00:00 2001 From: Alexis Hassler Date: Fri, 12 Apr 2019 23:08:34 +0200 Subject: [PATCH] First version --- .gitignore | 3 + .htaccess | 10 + 404.html | 24 ++ Gemfile | 12 + LICENSE.txt | 21 + README.md | 3 + _config.yml | 29 ++ _data/i18n/en.yml | 15 + _data/i18n/fr.yml | 15 + _data/users.yml | 3 + _includes/footer.html | 12 + _includes/formatted_date.html | 61 +++ _includes/functions/redirect-page.html | 7 + _includes/functions/wiki-pages.html | 7 + _includes/head.html | 10 + _includes/links.html | 12 + _includes/logo.html | 3 + _includes/tags.html | 21 + _includes/toc.html | 8 + _includes/user.html | 14 + _layouts/default.html | 34 ++ _layouts/redirect.html | 35 ++ _layouts/tag.html | 56 +++ _layouts/user.html | 4 + _layouts/wiki.html | 4 + _sass/wiki.scss | 539 +++++++++++++++++++++++++ _special/Redirect.html | 5 + _special/Tag:Example.md | 16 + _special/User:Alexis.html | 12 + _wiki-legacy/Old.html | 17 + _wiki/Main.md | 239 +++++++++++ _wiki/Minimal.md | 4 + _wiki/New-Adoc.adoc | 27 ++ _wiki/New.md | 20 + css/main.scss | 4 + favicon.ico | Bin 0 -> 5430 bytes feed.xml | 23 ++ img/sewatech.png | Bin 0 -> 6545 bytes img/wiki.png | Bin 0 -> 8730 bytes index.html | 3 + tags.html | 51 +++ 41 files changed, 1383 insertions(+) create mode 100644 .gitignore create mode 100644 .htaccess create mode 100644 404.html create mode 100644 Gemfile create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 _config.yml create mode 100644 _data/i18n/en.yml create mode 100644 _data/i18n/fr.yml create mode 100644 _data/users.yml create mode 100644 _includes/footer.html create mode 100644 _includes/formatted_date.html create mode 100644 _includes/functions/redirect-page.html create mode 100644 _includes/functions/wiki-pages.html create mode 100644 _includes/head.html create mode 100644 _includes/links.html create mode 100644 _includes/logo.html create mode 100644 _includes/tags.html create mode 100644 _includes/toc.html create mode 100644 _includes/user.html create mode 100644 _layouts/default.html create mode 100644 _layouts/redirect.html create mode 100644 _layouts/tag.html create mode 100644 _layouts/user.html create mode 100644 _layouts/wiki.html create mode 100644 _sass/wiki.scss create mode 100644 _special/Redirect.html create mode 100644 _special/Tag:Example.md create mode 100644 _special/User:Alexis.html create mode 100644 _wiki-legacy/Old.html create mode 100644 _wiki/Main.md create mode 100644 _wiki/Minimal.md create mode 100644 _wiki/New-Adoc.adoc create mode 100644 _wiki/New.md create mode 100644 css/main.scss create mode 100644 favicon.ico create mode 100644 feed.xml create mode 100644 img/sewatech.png create mode 100644 img/wiki.png create mode 100644 index.html create mode 100644 tags.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..15e9da4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +_site +.sass-cache +Gemfile.lock \ No newline at end of file diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..53d89e2 --- /dev/null +++ b/.htaccess @@ -0,0 +1,10 @@ +RewriteEngine On + +RewriteCond %{QUERY_STRING} ^title=Special:Newpages\&feed=rss$ +RewriteRule ^index\.php$ /feed.xml? [R=301,L] + +RewriteCond %{QUERY_STRING} ^title=Sp%C3%A9cial:Nouvelles_pages&feed=rss$ +RewriteRule ^index\.php$ /feed.xml? [R=301,L] + +RewriteCond %{QUERY_STRING} [^&?]*?=([^&?]*)[&]?(.*) +RewriteRule ^index\.php$ /%1.html?%2 [R=301,L] \ No newline at end of file diff --git a/404.html b/404.html new file mode 100644 index 0000000..c472b4e --- /dev/null +++ b/404.html @@ -0,0 +1,24 @@ +--- +layout: default +--- + + + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..89285aa --- /dev/null +++ b/Gemfile @@ -0,0 +1,12 @@ +source "https://rubygems.org" + +# Run Jekyll with `bundle exec`, like so: +# bundle exec jekyll serve +gem "jekyll", "3.8.5" + +gem "nokogiri" + +group :jekyll_plugins do + gem 'jekyll-asciidoc', "~> 2.1.1" + gem "jekyll-toc", "~> 0.11.0" +end diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..e8c3c2d --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Parker Moore + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..0f62c02 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +Bootstrap project to start a wiki powered by [Jekyll](https://jekyllrb.com/) + +See https://jek4wik.github.io for more information \ No newline at end of file diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..2c2abca --- /dev/null +++ b/_config.yml @@ -0,0 +1,29 @@ +title: Jekyll for Wiki +description: > # this means to ignore newlines + Bootstrap project based on Jekyll to build a static Wiki +baseurl: "" # the subpath of your site, e.g. /blog +url: "htpps://jek4wik.github.io" + +# Build settings +markdown: kramdown +plugins: + - jekyll-asciidoc + - jekyll-toc + +encoding: UTF-8 +lang: en # fr is also supported ; feel free to contribute other languages +date_format: "%-d %b %Y" + +collections: + wiki: + output: true + permalink: "/:path" + path: "" # avoid wiki in the url + wiki-legacy: + output: true + permalink: "/:path" + path: "" + special: + output: true + permalink: "/:path" + path: "" diff --git a/_data/i18n/en.yml b/_data/i18n/en.yml new file mode 100644 index 0000000..9eb2fef --- /dev/null +++ b/_data/i18n/en.yml @@ -0,0 +1,15 @@ +home: Main +logo: /img/wiki.png +label: + author: Author + links: Links + tags: Other pages + toc: Table of content + modified: Modified + created: Created + redirect: "Redirect to" + tag_pages: "Pages with tag" + main_page: "Main page" +prefix: + tag: "Tag:" + user: "User:" diff --git a/_data/i18n/fr.yml b/_data/i18n/fr.yml new file mode 100644 index 0000000..bcd592a --- /dev/null +++ b/_data/i18n/fr.yml @@ -0,0 +1,15 @@ +home: Accueil +logo: /img/wiki.png +label: + author: Auteur + links: Formation(s) + tags: Autres articles + toc: Sommaire + modified: Modification + created: Création + redirect: "Rediriger vers" + tag_pages: "Pages dans la catégorie" + main_page: "Page principale" +prefix: + tag: "Tag:" + user: "Utilisateur:" diff --git a/_data/users.yml b/_data/users.yml new file mode 100644 index 0000000..5c3afb1 --- /dev/null +++ b/_data/users.yml @@ -0,0 +1,3 @@ +Alexis: + name: Alexis Hassler + logo: img/sewatech.png diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..6239949 --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,12 @@ +
+ diff --git a/_includes/formatted_date.html b/_includes/formatted_date.html new file mode 100644 index 0000000..317eeba --- /dev/null +++ b/_includes/formatted_date.html @@ -0,0 +1,61 @@ +{% comment %} +See https://github.com/oncleben31/jekyll-date-basic-i18n/ +{% endcomment %} + +{% comment %} +This include allows to translate the days and months in the date by using strings in _data/locales/[lang].yml +This include can be called with three parameters: + - include.date: the date to be processed + - include.format: the date format. (If empty a default format will be used) + - include.lang: lang to use for translation. +{% endcomment %} + +{% comment %} +If the parameter date format is empty the default format set in _config.yml is used. +If there is no default in _config, "%b %-d, %Y" is used. +{% endcomment %} + +{% assign date_format_to_be_translated = include.format | default: site.date_format | default: "%-d %b %Y" %} + +{% comment %} +Init to have the indice of the day in the week (num_day) and the indice of the month in the year (num_mont) +Init the lang parameter depending if it's set in the include call, in the page or in the site settings +{% endcomment %} + +{% assign num_day = include.date | date: "%w" | plus: 0 %} +{% assign num_month = include.date | date: "%-m" | plus: -1 %} +{% assign lang = include.lang | default: page.lang | default: site.lang %} + +{% comment %} +Use translated abbreviated weekday if "%a" is used in the format and the translation is available in _data/locales/[lang].yml +{% endcomment %} + +{% if site.data.locales[lang].abbreviated_weekday[num_day] %} + {% assign date_format_to_be_translated = date_format_to_be_translated | replace: "%a", site.data.locales[lang].abbreviated_weekday[num_day] %} +{% endif %} + +{% comment %} +Use translated full weekday if "%A" is used in the format and the translation is available in _data/locales/[lang].yml +{% endcomment %} + +{% if site.data.locales[lang].full_weekday[num_day] %} + {% assign date_format_to_be_translated = date_format_to_be_translated | replace: "%A", site.data.locales[lang].full_weekday[num_day] %} +{% endif %} + +{% comment %} +Use translated abbreviated month if "%b" is used in the format and the translation is available in _data/locales/[lang].yml +{% endcomment %} + +{% if site.data.locales[lang].abbreviated_month[num_month] %} + {% assign date_format_to_be_translated = date_format_to_be_translated | replace: "%b", site.data.locales[lang].abbreviated_month[num_month] %} +{% endif %} + +{% comment %} +Use translated abbreviated weekday if "%B" is used in the format and the translation is available in _data/locales/[lang].yml +{% endcomment %} + +{% if site.data.locales[lang].full_month[num_month] %} + {% assign date_format_to_be_translated = date_format_to_be_translated | replace: "%B", site.data.locales[lang].full_month[num_month] %} +{% endif %} + +{{ include.date | date: date_format_to_be_translated }} diff --git a/_includes/functions/redirect-page.html b/_includes/functions/redirect-page.html new file mode 100644 index 0000000..9fd7401 --- /dev/null +++ b/_includes/functions/redirect-page.html @@ -0,0 +1,7 @@ +{% include /functions/wiki-pages.html %} +{% assign redirect = page.redirect | default: site.data.i18n[site.lang].home %} +{% for other_page in wiki_pages %} + {% if other_page.slug == redirect %} + {% assign redirect_page = other_page %} + {% endif %} +{% endfor %} diff --git a/_includes/functions/wiki-pages.html b/_includes/functions/wiki-pages.html new file mode 100644 index 0000000..670af12 --- /dev/null +++ b/_includes/functions/wiki-pages.html @@ -0,0 +1,7 @@ +{% assign wiki_pages = '' | split: '' %} +{% for collection in site.collections %} + {% assign prefix = collection.label | slice: 0, 4 %} + {% if prefix == 'wiki' %} + {% assign wiki_pages = wiki_pages | concat: collection.docs %} + {% endif %} +{% endfor %} \ No newline at end of file diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 0000000..c758d50 --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,10 @@ + + {{ page.title }} + + + {% if include.redirect_url %} + + + {% endif %} + + \ No newline at end of file diff --git a/_includes/links.html b/_includes/links.html new file mode 100644 index 0000000..af2013c --- /dev/null +++ b/_includes/links.html @@ -0,0 +1,12 @@ +{% if page.links != nil %} + +{% endif %} \ No newline at end of file diff --git a/_includes/logo.html b/_includes/logo.html new file mode 100644 index 0000000..11864bf --- /dev/null +++ b/_includes/logo.html @@ -0,0 +1,3 @@ + diff --git a/_includes/tags.html b/_includes/tags.html new file mode 100644 index 0000000..d523626 --- /dev/null +++ b/_includes/tags.html @@ -0,0 +1,21 @@ +{% if page.tags.size > 0 %} + +{% endif %} diff --git a/_includes/toc.html b/_includes/toc.html new file mode 100644 index 0000000..3875091 --- /dev/null +++ b/_includes/toc.html @@ -0,0 +1,8 @@ +{% if page.toc == true %} +
+

{{ site.data.i18n[site.lang].label.toc }}

+
+ {{ content | toc_only }} +
+
+{% endif %} diff --git a/_includes/user.html b/_includes/user.html new file mode 100644 index 0000000..04dbdb8 --- /dev/null +++ b/_includes/user.html @@ -0,0 +1,14 @@ +{% if page.author %} +
+

{{ site.data.i18n[site.lang].label.author }}

+
+ {% assign author = site.data.users[page.author] %} + + {% if author.logo %} + + {% endif %} +
+
+{% endif %} diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..1179bdf --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,34 @@ + + + {% include head.html %} + + + +
+
+
+ +

+ {{ page.title }} +

+ +
+
+ {{ content | inject_anchors }} +
+
+
+
+ +
+ {% include logo.html %} + {% include user.html %} + {% include toc.html %} + {% include links.html %} + {% include tags.html %} +
+
+ + {% include footer.html %} + + diff --git a/_layouts/redirect.html b/_layouts/redirect.html new file mode 100644 index 0000000..dd802d2 --- /dev/null +++ b/_layouts/redirect.html @@ -0,0 +1,35 @@ + + {% include /functions/redirect-page.html %} + + {% assign redirect_url = redirect_page.url | append: ".html" %} + {% include head.html redirect_url = redirect_url %} + + + +
+
+
+ +

+ {{ redirect_page.title }} +

+ +
+
+
+

{{ site.data.i18n[site.lang].label.redirect }} :

+ +
+
+
+
+
+
+ {% include logo.html %} +
+
+ {% include footer.html %} + + diff --git a/_layouts/tag.html b/_layouts/tag.html new file mode 100644 index 0000000..ce28504 --- /dev/null +++ b/_layouts/tag.html @@ -0,0 +1,56 @@ + + + + {{ page.title }} + + + + + + +
+
+
+ +

+ {{ page.tags }} +

+ +
+
+ {{ content }} +
+
+ +
+

{{ site.data.i18n[site.lang].label.tag_pages }} {{ page.tags }}

+
+
    + {% include /functions/wiki-pages.html %} + {% for tag in page.tags %} + {% for other_page in wiki_pages %} + {% if other_page.tags contains tag and other_page.slug != page.slug %} +
  • {{ other_page.title }}
  • + {% endif %} + {% endfor %} + {% endfor %} +
+
+
+ +
+
+
+ {% include logo.html %} +
+
+ {% include footer.html %} + + diff --git a/_layouts/user.html b/_layouts/user.html new file mode 100644 index 0000000..73dae17 --- /dev/null +++ b/_layouts/user.html @@ -0,0 +1,4 @@ +--- +layout: default +--- +{{ content }} diff --git a/_layouts/wiki.html b/_layouts/wiki.html new file mode 100644 index 0000000..73dae17 --- /dev/null +++ b/_layouts/wiki.html @@ -0,0 +1,4 @@ +--- +layout: default +--- +{{ content }} diff --git a/_sass/wiki.scss b/_sass/wiki.scss new file mode 100644 index 0000000..50696a4 --- /dev/null +++ b/_sass/wiki.scss @@ -0,0 +1,539 @@ +body { + font: x-small sans-serif; + background: #acabab; + color: black; + margin: 0; + padding: 0; + direction: ltr; + unicode-bidi: embed; +} + +a { + text-decoration: none; + color: #0645ad; + background: none; + &:visited { + color: #0b0080; + } + &:active { + color: #faa700; + } + &:hover, &:focus { + text-decoration: underline; + } + &.stub { + color: #772233; + } + &.new { + color: #ba0000; + } +} + +#p-personal a.new { + color: #ba0000; +} + +a.new:visited { + color: #a55858; +} + +.wiki-body a.external { + color: #36b; + &:visited { + color: #636; + } + &:active { + color: #b63; + } +} + +img { + border: none; + vertical-align: middle; +} + +hr { + height: 1px; + color: #aaa; + background-color: #aaa; + border: 0; + margin: 0.2em 0; +} + +h1, h2, h3, h4, h5, h6 { + color: black; + background: none; + font-weight: normal; + margin: 0; + overflow: hidden; + padding-top: .5em; + padding-bottom: .17em; + border-bottom: 1px solid #aaa; +} + +h1 { + font-size: 188%; +} + +h2 { + font-size: 150%; +} + +h3, h4, h5, h6 { + border-bottom: none; + font-weight: bold; +} + +h3 { + font-size: 132%; +} + +h4 { + font-size: 116%; +} + +h5 { + font-size: 108%; +} + +h6 { + font-size: 100%; +} + +h1, h2 { + margin-bottom: 0.6em; +} + +h3, h4, h5 { + margin-bottom: 0.3em; +} + +p { + margin: .4em 0 .5em 0; + line-height: 1.5em; + img { + margin: 0; + } +} + +ul { + line-height: 1.5em; + list-style-type: square; + margin: .3em 0 0 1.6em; + padding: 0; +} + +ol { + line-height: 1.5em; + margin: .3em 0 0 3.2em; + padding: 0; + list-style-image: none; +} + +li { + margin-bottom: 0.1em; +} + +dt { + font-weight: bold; + margin-bottom: 0.1em; +} + +dl { + margin-top: .2em; + margin-bottom: 0.5em; +} + +dd { + line-height: 1.5em; + margin-left: 1.6em; + margin-bottom: 0.1em; +} + +q { + font-style: italic; +} + +pre, code, tt, kbd, samp { + font-family: monospace, Courier; +} + +code { + color: black; + padding: 1px 4px; + + span { + border: 0; + } +} + +pre { + color: black; + background-color: #f9f9f9; + border: 1px solid #ddd; + padding: 1em; +} + +table { + font-size: 100%; +} + +fieldset { + border: 1px solid #2f6fab; + margin: 1em 0 1em 0; + padding: 0 1em 1em; + line-height: 1.5em; + &.nested { + margin: 0 0 0.5em 0; + padding: 0 0.5em 0.5em; + } +} + +legend { + padding: .5em; + font-size: 95%; +} + +form { + border: none; + margin: 0; +} + +textarea { + width: 100%; + padding: .1em; + display: block; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +select { + vertical-align: top; +} + +.center { + width: 100%; + text-align: center; +} + +*.center * { + margin-left: auto; + margin-right: auto; +} + +.small { + font-size: 94%; +} + +table.small { + font-size: 100%; +} + +.visualClear { + clear: both; +} + +div.floatright, table.floatright { + margin: 0 0 .5em .5em; + border: 0; +} + +div { + &.floatright p { + font-style: italic; + } + &.floatleft { + margin: 0 .5em .5em 0; + border: 0; + } +} + +table.floatleft { + margin: 0 .5em .5em 0; + border: 0; +} + +div { + &.floatleft p { + font-style: italic; + } + &.thumb { + margin-bottom: .5em; + width: auto; + background-color: transparent; + } + &.thumbinner { + border: 1px solid #ccc; + padding: 3px; + background-color: #f9f9f9; + font-size: 94%; + text-align: center; + overflow: hidden; + } +} + +html { + .thumbimage { + border: 1px solid #ccc; + } + .thumbcaption { + border: none; + line-height: 1.4em; + padding: 3px; + font-size: 94%; + text-align: left; + } +} + +img.thumbborder { + border: 1px solid #dddddd; +} + +div { + &.tright { + margin: 0.5em 0 1.3em 1.4em; + } + &.tleft { + margin: 0.5em 1.4em 1.3em 0; + } +} + +.catlinks { + border: 1px solid #aaa; + background-color: #f9f9f9; + padding: 5px; + margin-top: 1em; + clear: both; +} + +.usermessage { + background-color: #ffce7b; + border: 1px solid #ffa500; + color: black; + font-weight: bold; + margin: 2em 0 1em; + padding: .5em 1em; + vertical-align: middle; +} + +#siteNotice { + position: relative; + text-align: center; + margin: 0; +} + +#localNotice { + margin-bottom: 0.9em; +} + +.firstHeading { + margin-bottom: .1em; + line-height: 1.2em; + padding-bottom: 0; +} + +#siteSub { + display: none; +} + +#jump-to-nav { + margin-top: -1.4em; + margin-bottom: 1.4em; +} + +#contentSub, #contentSub2 { + font-size: 84%; + line-height: 1.2em; + margin: 0 0 1.4em 1em; + color: #545454; + width: auto; +} + +span.subpages { + display: block; +} + +div#column-content { + width: 100%; + float: right; + margin: 0 0 .6em -15em; + padding: 0; +} + +.wiki-body { + margin: 1em 0 0 15em; + padding: 1em; + position: relative; + z-index: 2; + background: white; + color: black; + border: 1px solid #aaa; + border-right: none; + line-height: 1.5em; +} + +div#column-one { + padding-top: 160px; +} + +#column-one h2 { + position: absolute; + top: -9999px; +} + +div#globalWrapper { + font-size: 127%; + width: 100%; + margin: 0; + padding: 0; +} + +a { + color: #002bb8; + &:visited { + color: #5a3696; + } + &.new { + color: #cc2200; + } +} + +#p-personal a.new { + color: #cc2200; +} + +ul { + list-style-type: square; + list-style-image: url(data:image/gif;base64,R0lGODlhBQANAIAAAGOMnP///yH5BAEAAAEALAAAAAAFAA0AAAIJjI+pu+APo4SpADs=); +} + +pre { + line-height: 1.1em; +} + +#firstHeading { + padding-top: 0; + font-size: 210%; + font-weight: bold; +} + +.portlet { + border: none; + margin: 0 0 .5em; + padding: 0; + float: none; + width: 16.5em; + overflow: hidden; + h3 { + background: transparent; + padding: 0 1em 0 .5em; + display: inline; + height: 1em; + /* text-transform:lowercase; */ + font-size: 91%; + font-weight: normal; + white-space: nowrap; + } +} + +.portlet-body { + font-size: 95%; + background-color: white; + color: black; + border-collapse: collapse; + border: 1px solid #aaa; + padding: 0 0.8em 0.3em 0.5em; + &:after { + content: ''; + clear: both; + display: block; + } +} + +.portlet { + ul { + line-height: 1.5em; + font-size: 95%; + } + li { + padding: 0; + margin: 0; + } +} + +#p-logo { + top: 10px; + left: 10px; + position: absolute; + z-index: 3; + height: 155px; + width: 12em; + overflow: visible; + a { + display: block; + height: 155px; + width: 15em; + background-repeat: no-repeat; + background-position: 35% 50% !important; + text-decoration: none; + &:hover { + display: block; + height: 155px; + width: 15em; + background-repeat: no-repeat; + background-position: 35% 50% !important; + text-decoration: none; + } + } +} + +div#footer { + background-color: white; + border-top: 1px solid #fabd23; + border-bottom: 1px solid #fabd23; + margin: .6em 0 1em 0; + overflow: hidden; + padding: .4em 0 .3em 0; + text-align: center; + font-size: 90%; + ul { + list-style-type: none; + list-style-image: unset; + } + li { + display: inline; + margin: 0 1.3em; + } +} + +#column-one { + font-size: 14px; +} + +#column-content { + font-size: 16px; +} + +ul#f-list { + float: left; + width: 100%; +} + +.floatleft { + float: left; + clear: left; +} + +.floatright { + float: right; + clear: right; +} + +#f-poweredbyico { + margin:0 8px; + position:relative; + top:-2px; + float:right; + height:1%; +} diff --git a/_special/Redirect.html b/_special/Redirect.html new file mode 100644 index 0000000..7e3d2c8 --- /dev/null +++ b/_special/Redirect.html @@ -0,0 +1,5 @@ +--- +layout: redirect +title: Example of redirection +redirect: New +--- diff --git a/_special/Tag:Example.md b/_special/Tag:Example.md new file mode 100644 index 0000000..e1f80e0 --- /dev/null +++ b/_special/Tag:Example.md @@ -0,0 +1,16 @@ +--- +layout: tag +title: Example of Tag +tags: Example +toc: false +created: 2019-04-12 +modified: 2019-04-12 +revisions: +- author: Alexis + date: 2019-04-12 + comment: First version +--- + +## Example Tag + +*Nice* examples diff --git a/_special/User:Alexis.html b/_special/User:Alexis.html new file mode 100644 index 0000000..96c11a2 --- /dev/null +++ b/_special/User:Alexis.html @@ -0,0 +1,12 @@ +--- +layout: user +title: Alexis +toc: false +created: 2019-04-12 +modified: 2019-04-12 +revisions: +- author: Alexis + date: 2019-04-12 + comment: First version +--- +I'm a developer. diff --git a/_wiki-legacy/Old.html b/_wiki-legacy/Old.html new file mode 100644 index 0000000..d38f528 --- /dev/null +++ b/_wiki-legacy/Old.html @@ -0,0 +1,17 @@ +--- +layout: wiki +title: Old Page +tags: Example +toc: false +author: Alexis +created: 2009-04-12 +modified: 2009-04-12 +revisions: +- author: Alexis + date: 2009-04-12 + comment: First version +--- +

Old

+

This is an old page from an ancient Wiki.

+

Migrated

+

It has been exported as an HTML file, with a frontmatter.

diff --git a/_wiki/Main.md b/_wiki/Main.md new file mode 100644 index 0000000..783a203 --- /dev/null +++ b/_wiki/Main.md @@ -0,0 +1,239 @@ +--- +layout: wiki +title: Main Page +toc: false +created: 2009-04-12 +modified: 2009-04-12 +revisions: +- author: Alexis + date: 2009-04-12 + comment: First version +--- + +# Why ? + +I wrote this template in 2019 because I wanted to migrate a mediawiki-powered wiki to jekyll. + +The template has a layout and a navigation that can replace my old wiki. + +# How to + +If you want to use this template, clone the [repository](https://github.com/jek4wik/jek4wik), customize it and write _wiki_ pages. + +## Settings + +The general settings are in the _config.yml file. + +You may choose the *language*. +English (en) and french (fr) are supported out-of-the box. + +```yaml +lang: en +``` + +You may customize the *collections*. +The only contraint is that the name of collections containing wiki pages should start with wiki. + +```yaml +collections: + wiki-one: + output: true + permalink: "/:path" + path: "" + wiki-two: + output: true + permalink: "/:path" + path: "" + special: + output: true + permalink: "/:path" + path: "" +``` + +Of course, you'll have to change the other site settings like title, description or url. + +## i18n + +The labels are in i18n files in the `_data/i18n` directory. + +These files contain also prefixes for special pages, the name of home page and the logo that will be displayed on the top left. + +```yaml +home: Main +logo: /img/wiki.png +label: + author: Author + links: Links + tags: Other pages + ... +prefix: + tag: "Category:" + user: "User:" +``` + +## Users + +The users are declared in the _data/users.yml file. + +```yaml +Alexis: + name: Alexis Hassler + logo: img/sewatech.png +``` + +Each user should have its page in the `_special` directory. +The name of this page starts with the prefix defined in the i18n file (here `User:`) +and end with the user short name (here `Alexis`). + +# Wiki pages + +Wiki pages are in collections that name starts with wiki. +The bootstrap project provides 2 collections : `wiki` and `wiki-legacy`. + +The pages can be written in HTML, Markdown or Asciidoc. + +> Note: Asciidoc is not supported on Github pages. + +## Regular wiki page + +A regular wiki page should be place in a _wiki_ collection. +The only required metadata in frontmatter is the layout. +The simplest page may be something like this: + +```yaml +--- +layout: wiki +--- +Example with minimal frontmatter +``` + +The frontmatter may contain the following attributes: + +* title: will be displayed on top of the page +* author: will be displayed in a div in the left columns +* toc: true/false wether you want a generated table of content +* created and modified: date in format yyyy-MM-dd +* revisions: not displayed (maybe for a future use) + +> Note: the toc plugin doesn't work on Github pages + +## Redirect page + +A redirect page should be place in a _wiki_ collection. +It should have a frontmatter with a **layout** and a **redirect**, and no content + +```yaml +--- +layout: redirect +redirect: New +--- +``` + +> Note: redirections may be managed in an other way with the _jekyll-redirect-from_ plugin + +## Tag page + +A tag page should be place in a _special_ collection. +The file name should have the prefix defined in the _i18n_ file and end with the tag name. + +For example, a file named `Tag:Example.md` would fit with the following i18n configuration. + +```yaml +prefix: + tag: "Tag:" +``` + +> Note: this is in the i18n files because mediawiki translates this prefix ; it is Category in english and Catégorie in french + +The tag page may have the same metadata as a regular page. + +```yaml +--- +layout: tag +title: Example of Tag +tags: Example +toc: false +created: 2019-04-12 +modified: 2019-04-12 +revisions: +- author: Alexis + date: 2019-04-12 + comment: First version +--- +## Example Tag + +Nice examples +``` + +## User pages + +A user page should be place in a _special_ collection. +The file name should have the prefix defined in the _i18n_ file and end with the user name. + +For example, a file named `User:Example.md` would fit with the following i18n configuration. + +```yaml +prefix: + user: "User:" +``` + +> Note: this is in the i18n files because mediawiki translates this prefix ; it is User in english and Utilisateur in french + +The user page may have the same metadata as a regular page. + +```yaml +--- +layout: user +title: Alexis +created: 2019-04-12 +modified: 2019-04-12 +--- +I'm a developer. +``` + +# Deploy + +The simplest way to deploy your wiki is to generate the site and copy it to a Web Server. + +```yaml +jekyll build +``` + +As any Jekyll web site, the generation may be done on a CI server (TravisCI,...) or with the CI capabilities of the Git server (Gitlab, Github actions,...). + +## Apache HTTP server + +A `.htaccess` file is provided. +If the site is deployed on a Apache HTTP server, some old mediawiki URLs are rewritten to the new Jekyll URLs. + +## Github pages + +The wiki may be deployed on Github pages with the following contraints: + +* Only HTML or Markdown, no Asciidoc +* No generated toc + +If you want to have this features on Github pages, you should push the generated site. +Any CI tool can help. + +## Gitlab pages + +[TBD] + +## Github actions + +[TBD] + +## TravisCI + +[TBD] + +# Examples + +* Example of a [new page](New.html) +* Example of a [legacy page](Old.html) +* Example of a [redirected page](Redirect.html) +* Example of a [user page](./User:Alexis.html) +* [RSS](feed.xml) feed of new pages +* Example of a [tag page](./Category:Example.html) +* [All tags page](./tags.html) diff --git a/_wiki/Minimal.md b/_wiki/Minimal.md new file mode 100644 index 0000000..8eefc33 --- /dev/null +++ b/_wiki/Minimal.md @@ -0,0 +1,4 @@ +--- +layout: wiki +--- +Example with minimal frontmatter \ No newline at end of file diff --git a/_wiki/New-Adoc.adoc b/_wiki/New-Adoc.adoc new file mode 100644 index 0000000..a666ca1 --- /dev/null +++ b/_wiki/New-Adoc.adoc @@ -0,0 +1,27 @@ +--- +layout: wiki +title: New Page (Adoc) +tags: Example +toc: false +author: Alexis +created: 2009-04-12 +modified: 2009-04-12 +revisions: +- author: Alexis + date: 2009-04-12 + comment: First version +--- +== New + +This is an new page design for Jekyll. + +== Adoc + +It has been written in adoc. +Won't be displayed on Github Pages (direct). +Probably works via CI. + +[source] +---- +Example of source code +---- \ No newline at end of file diff --git a/_wiki/New.md b/_wiki/New.md new file mode 100644 index 0000000..21352db --- /dev/null +++ b/_wiki/New.md @@ -0,0 +1,20 @@ +--- +layout: wiki +title: New Page +tags: Example +toc: false +author: Alexis +created: 2009-04-12 +modified: 2009-04-12 +revisions: +- author: Alexis + date: 2009-04-12 + comment: First version +--- +## New + +This is an new page designed for Jekyll. + +## Markdown + +It has been written in Markdown. diff --git a/css/main.scss b/css/main.scss new file mode 100644 index 0000000..d7ba096 --- /dev/null +++ b/css/main.scss @@ -0,0 +1,4 @@ +--- +# Only the main Sass file needs front matter (the dashes are enough) +--- +@import "wiki"; \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..e8b4e38170f1496f486405df504c478661906eb7 GIT binary patch literal 5430 zcmcgwdrVVj6u<7F$+AS3><_nqfFKf$4-k!WZq8|>`hMYckg%3 z?|k=s=R1$faWl9lxY$^Z?y=nEIUJYBaoilbv*-O!ah#UMN%W3bxYvl-``|_ILoWba zI2srjNO3wH2YY(D_tJQ7IR5FJzth?IeNkb3;Mk{iID5v7_O`p-eSLi!rc=j6SgzjQ zH}WJkfo033m>+!u@zM3z{$?AxyL;LP2M3>-NN&2`+pLxg*pNPijW*J4q8Gg@1EhP+;H93LE^JoJ4tl?s((>z+a^NDz??if9ehNM2^a zxwBnxxm?GDV)K=2wpmXdJyC+xwaf>ull}@UO4K85V>{ae%l-TJpXQ4tgwNyYUvfo! zBd~FYg!bSn=`W={s6|4w1=Y%Kc>4P{3c;OWJr6j7%NwoASH$A*CBaP3%c(1^!t3i=Y`<%l^Gr$o?Tw9@TTu7 zKt@(IcI?)Y4b-%TCS1Pc0L8-(`CYihjx$Dy2Jq`rI&@i8nGRFeK%cz1gT+XFSN z@kycBeB>w=ulxJ59P78TSRf|-GHlt|h{RYMjE0_o$Ky%ngCmq@WMqV^)6|-G?k_}A z(p5T(QY6Hv$Oa~yIDVJKf}ez9^Ob9FYyIq-A4{=mM-djxmyiucbJE&Xt(22`yB>E= zBK#=1ylN=pqawu3qj(q{`J7}l=p~A(YGi&~gybbG7DPNJZLg_Tp|(a1l|q3+NgY1P z)??|y$mJxBy4s8 zCSRWx!pCxwTBQusX=;Kt&}r+?blZfE_BK$B8i-U*V)|8zs-Q0z^|#Q{Y=fh#D`Gi` z*`Do#TB$%oy^iePgibq)$C1fNq~H6{59?}i+hjyrYYV#XIU|;n*f}I$2--n^s{vFq zQ%=4Uv7E$okNH9UO)V%-k{`0#ESQs0g!ngK8J3gC{uZ_eDn(^*9VUZ5=!Z@Rs|#Ez zirKUI;tAnnIf?mUg}gkt56lncaS7@-$2Kk`j>yEC(-s72y-d)^M6 z3-{dbcCXIZQyQ2brNq~{_Cd;5Q~IYt=W0#HzCx-2i?M2X6V-nGhr{U{KhO5(;$I5u z!o++eC1@cQIgC^7rLET1qwCWph@W=@yLYvM{9w&^9pT1|RAEPq^o1o9#4;-EPo241# zTPMfQ^BL + + + {{ site.title }} + {{ site.description }} + {{ site.url }} + {% include /functions/wiki-pages.html %} + {% for post in wiki_pages reversed%} + {% unless post.draft %} + + {{ post.title | xml_escape }} + {{ post.description | xml_escape | truncate: 300 }} + {{ post.created | date_to_xmlschema }} + {{ post.url | prepend: site.url | append: '.html'}} + {{ post.url | prepend: site.url | append: '.html' }} + + {% endunless %} + {% endfor %} + + diff --git a/img/sewatech.png b/img/sewatech.png new file mode 100644 index 0000000000000000000000000000000000000000..977d7d71831e275dd7d017cf2c7e43196269f203 GIT binary patch literal 6545 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ç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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..9bc660a --- /dev/null +++ b/index.html @@ -0,0 +1,3 @@ +--- +layout: redirect +--- diff --git a/tags.html b/tags.html new file mode 100644 index 0000000..5eca23d --- /dev/null +++ b/tags.html @@ -0,0 +1,51 @@ +--- +layout: default +title: Tags +--- +{% assign var = 10 %} + +{% comment %} +======================= +The following part extracts all the tags from your posts and sort tags, so that you do not need to manually collect your tags to a place. +======================= +{% endcomment %} +{% assign rawtags = "" %} + +{% include /functions/wiki-pages.html %} + +{% for wiki_page in wiki_pages %} + {% assign ttags = wiki_page.tags | join:'|' | append:'|' %} + {% assign rawtags = rawtags | append:ttags %} +{% endfor %} +{% assign rawtags = rawtags | split:'|' | sort %} + +{% comment %} +======================= +The following part removes dulpicated tags and invalid tags like blank tag. +======================= +{% endcomment %} + +{% assign tags = "" %} +{% for tag in rawtags %} + {% if tag != "" %} + {% if tags == "" %} + {% assign tags = tag | split:'|' %} + {% endif %} + {% unless tags contains tag %} + {% assign tags = tags | join:'|' | append:'|' | append:tag | split:'|' %} + {% endunless %} + {% endif %} +{% endfor %} + +
    +{% for tag in tags %} +
  • {{ tag }}
  • +
      + {% for other_page in wiki_pages %} + {% if other_page.tags contains tag %} +
    • {{ other_page.title }}
    • + {% endif %} + {% endfor %} +
    +{% endfor %} +