First commit.

This commit is contained in:
Stefan Bohacek 2024-05-17 08:19:39 -04:00
commit be66be6e29
No known key found for this signature in database
GPG key ID: FC75CD588A42BC10
33 changed files with 642 additions and 0 deletions

2
Dockerfile Normal file
View file

@ -0,0 +1,2 @@
FROM nginx:alpine
COPY . /usr/share/nginx/html

21
LICENSE.md Normal file
View file

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2024 Stefan Bohacek, with contributions from The Bootstrap Authors and Themesberg
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.

74
README.md Normal file
View file

@ -0,0 +1,74 @@
# Fediverse Sharing Button
Let your site's visitors share your work with the fediverse!
## Features
- minimalist design inspired by Bootstrap
- shows a logo of supported fediverse software
- lets you share selected text
- remembers the last fediverse domain used
- free (as in fediverse) to use!
## How to use
1. Download the files in this repo.
2. Add the JavaScript code and CSS stylesheet to your page.
```html
<link rel="stylesheet" href="./fediverse-share-button/styles.min.css">
<script src="./fediverse-share-button/script.min.js" defer class="fsb-script">
```
Note that if you need to change the path at which the `fediverse-share-button` folder is uploaded
3. Add a sharing prompt to your page.
```html
<form class="fsb-prompt">
<label>Share with the fediverse</label>
<div class="input-group mb-3">
<span class="input-group-text">https://</span>
<input required
type="text"
name="fediverse-domain"
placeholder="mastodon.social"
class="fsb-domain form-control"
aria-label="Amount (to the nearest dollar)">
<button class="fsb-btn btn btn-outline-secondary"
type="submit"
id="button-addon2"><img src="./fediverse-share-button/icons/mastodon.svg"
class="fsb-icon"></span>Share</button>
</div>
<p class="fsb-support-note fsb-d-none">This server does not support sharing. Please visit <a
class="fsb-support-note-link"
target="_blank"
href=""></a>.</p>
</form>
```
## Development
After making changes to the JS and CSS files, make sure to minify them.
```sh
npm i minify -g
minify fediverse-share-button/script.js > fediverse-share-button/script.min.js
minify fediverse-share-button/styles.css > fediverse-share-button/styles.min.css
```
## To-do
- Better development workflow.
- Localization.
## Attributions
### Icons
- fediverse.wake.st
- flowbite.com/icons
### JS and CSS code
- https://getbootstrap.com

4
captain-definition Normal file
View file

@ -0,0 +1,4 @@
{ 
  "schemaVersion": 2, 
  "dockerfilePath" :"./Dockerfile"
}

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg class="w-6 h-6 text-gray-800 dark:text-white" aria-hidden="true"
xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M9.529 9.988a2.502 2.502 0 1 1 5 .191A2.441 2.441 0 0 1 12 12.582V14m-.01 3.008H12M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
</svg>

After

Width:  |  Height:  |  Size: 444 B

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg class="w-6 h-6 text-gray-800 dark:text-white" aria-hidden="true"
xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M9.529 9.988a2.502 2.502 0 1 1 5 .191A2.441 2.441 0 0 1 12 12.582V14m-.01 3.008H12M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
</svg>

After

Width:  |  Height:  |  Size: 444 B

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg class="w-6 h-6 text-gray-800 dark:text-white" aria-hidden="true"
xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M9.529 9.988a2.502 2.502 0 1 1 5 .191A2.441 2.441 0 0 1 12 12.582V14m-.01 3.008H12M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
</svg>

After

Width:  |  Height:  |  Size: 444 B

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Friendica</title>
<g id="Friendica" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M435.353293,0 C477.684101,0 512,34.3158994 512,76.6467066 L512,435.353293 C512,477.684101 477.684101,512 435.353293,512 L76.6467066,512 C34.3158994,512 0,477.684101 0,435.353293 L0,76.6467066 C0,34.3158994 34.3158994,0 76.6467066,0 L435.353293,0 Z M427.596036,20 L347.929408,20 L347.929408,143.224919 L184,143.224919 L184,246.550162 L347.929408,246.550162 L347.929408,389.674757 L184,389.674757 L184,493 L429.128087,493 C464.365249,493 493.47421,465.446602 491.942159,428.708738 L491.942159,84.2912621 C491.942159,49.0841424 464.365249,20 427.596036,20 Z" fill="#000000" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 934 B

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Glitch-soc Alt 1</title>
<g id="Glitch-soc-Alt-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M169.815307,149 L117.184693,149 C111.559842,149 107,153.608833 107,159.294118 L107,203.705882 C107,209.391167 111.559842,214 117.184693,214 L169.815307,214 C175.440158,214 180,209.391167 180,203.705882 L180,159.294118 C180,153.608833 175.440158,149 169.815307,149 Z M357.814332,0 L192.185668,0 C186.560279,0 182,4.60883346 182,10.2941176 L182,54.7058824 C182,60.3911665 186.560279,65 192.185668,65 L357.814332,65 C363.439721,65 368,60.3911665 368,54.7058824 L368,10.2941176 C368,4.60883346 363.439721,0 357.814332,0 Z M394.824064,224 L285.175936,224 C279.555922,224 275,228.608833 275,234.294118 L275,278.705882 C275,284.391167 279.555922,289 285.175936,289 L394.824064,289 C400.444078,289 405,284.391167 405,278.705882 L405,234.294118 C405,228.608833 400.444078,224 394.824064,224 Z M207.815307,75 L155.184693,75 C149.559842,75 145,79.6088335 145,85.2941176 L145,129.705882 C145,135.391167 149.559842,140 155.184693,140 L207.815307,140 C213.440158,140 218,135.391167 218,129.705882 L218,85.2941176 C218,79.6088335 213.440158,75 207.815307,75 Z M394.815307,75 L342.184693,75 C336.559842,75 332,79.6088335 332,85.2941176 L332,129.705882 C332,135.391167 336.559842,140 342.184693,140 L394.815307,140 C400.440158,140 405,135.391167 405,129.705882 L405,85.2941176 C405,79.6088335 400.440158,75 394.815307,75 Z M357.814332,447 L192.185668,447 C186.560279,447 182,451.608833 182,457.294118 L182,501.705882 C182,507.391167 186.560279,512 192.185668,512 L357.814332,512 C363.439721,512 368,507.391167 368,501.705882 L368,457.294118 C368,451.608833 363.439721,447 357.814332,447 Z M207.815307,372 L155.184693,372 C149.559842,372 145,376.608833 145,382.294118 L145,426.705882 C145,432.391167 149.559842,437 155.184693,437 L207.815307,437 C213.440158,437 218,432.391167 218,426.705882 L218,382.294118 C218,376.608833 213.440158,372 207.815307,372 Z M394.815307,372 L342.184693,372 C336.559842,372 332,376.608833 332,382.294118 L332,426.705882 C332,432.391167 336.559842,437 342.184693,437 L394.815307,437 C400.440158,437 405,432.391167 405,426.705882 L405,382.294118 C405,376.608833 400.440158,372 394.815307,372 Z M394.815307,299 L342.184693,299 C336.559842,299 332,303.608833 332,309.294118 L332,353.705882 C332,359.391167 336.559842,364 342.184693,364 L394.815307,364 C400.440158,364 405,359.391167 405,353.705882 L405,309.294118 C405,303.608833 400.440158,299 394.815307,299 Z M169.815307,299 L117.184693,299 C111.559842,299 107,303.608833 107,309.294118 L107,353.705882 C107,359.391167 111.559842,364 117.184693,364 L169.815307,364 C175.440158,364 180,359.391167 180,353.705882 L180,309.294118 C180,303.608833 175.440158,299 169.815307,299 Z M169.815307,224 L117.184693,224 C111.559842,224 107,228.608833 107,234.294118 L107,278.705882 C107,284.391167 111.559842,289 117.184693,289 L169.815307,289 C175.440158,289 180,284.391167 180,278.705882 L180,234.294118 C180,228.608833 175.440158,224 169.815307,224 Z" id="Glitch-soc" fill="#000000" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View file

@ -0,0 +1 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="512" xmlns="http://www.w3.org/2000/svg" height="512" id="screenshot-e896cdf2-4b36-80a4-8004-193832db4615" viewBox="0 0 512 512" style="-webkit-print-color-adjust: exact;" fill="none" version="1.1"><g id="shape-e896cdf2-4b36-80a4-8004-193832db4615"><defs><clipPath class="frame-clip-def frame-clip" id="frame-clip-e896cdf2-4b36-80a4-8004-193832db4615-rumext-id-1"><rect rx="0" ry="0" x="0" y="0" width="512" height="512" transform="matrix(1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)"/></clipPath></defs><g clip-path="url(#frame-clip-e896cdf2-4b36-80a4-8004-193832db4615-rumext-id-1)" fill="none"><clipPath class="frame-clip-def frame-clip" id="frame-clip-e896cdf2-4b36-80a4-8004-193832db4615-rumext-id-1"><rect rx="0" ry="0" x="0" y="0" width="512" height="512" transform="matrix(1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)"/></clipPath><g class="fills" id="fills-e896cdf2-4b36-80a4-8004-193832db4615"><rect rx="0" ry="0" x="0" y="0" transform="matrix(1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)" width="512" height="512" class="frame-background"/></g><g class="frame-children"><g id="shape-e896cdf2-4b36-80a4-8004-19388b9ccee1"><g fill="none"><g class="fills" id="fills-e896cdf2-4b36-80a4-8004-19388b9ccee1"><rect rx="0" ry="0" x="67" y="0" transform="" width="377.9298969072164" height="512" class="frame-background"/></g><g class="frame-children"><g id="shape-e896cdf2-4b36-80a4-8004-19380d734da4"><g class="fills" id="fills-e896cdf2-4b36-80a4-8004-19380d734da4"><path rx="0" ry="0" d="M135.256,0.000C129.219,0.000,121.171,4.517,111.110,13.550C101.049,22.583,92.397,32.921,85.153,44.564C77.104,57.812,73.080,69.656,73.080,80.094L73.080,83.105C73.080,95.551,73.482,105.387,74.287,112.614C75.897,124.658,79.116,134.896,83.945,143.327C89.982,154.166,98.634,162.798,109.902,169.222C93.403,185.682,81.531,206.358,74.287,231.250C69.055,251.323,66.641,274.408,67.043,300.504C67.446,333.023,72.476,362.733,82.134,389.631C94.610,424.158,113.726,451.459,139.481,471.532C170.067,495.621,209.304,508.970,257.194,511.579C305.084,514.189,344.321,504.654,374.906,482.974C400.260,464.908,418.973,439.414,431.046,406.493C440.302,379.996,444.930,351.291,444.930,320.377L282.547,320.377L309.108,391.438L356.797,389.029L356.797,395.051C356.394,399.468,355.187,404.085,353.175,408.902C350.358,414.924,346.132,420.144,340.498,424.560C333.254,430.582,323.998,434.998,312.730,437.808C299.047,441.020,282.748,442.225,263.834,441.422C229.225,440.217,203.267,429.980,185.963,410.709C166.646,389.431,156.987,355.707,156.987,309.537C156.987,283.843,157.994,264.572,160.006,251.725C162.420,236.469,167.149,224.926,174.192,217.098C181.234,209.269,191.597,203.548,205.280,199.935C217.755,196.723,236.066,194.515,260.212,193.310C277.114,192.909,292.407,195.117,306.090,199.935C317.760,203.949,328.224,209.971,337.480,218.001C344.723,224.424,351.162,231.852,356.797,240.283C360.418,246.305,363.437,252.728,365.851,259.554L368.266,267.382L443.723,268.587L442.515,259.554C440.906,251.524,438.491,243.294,435.271,234.863C431.247,223.622,426.418,212.982,420.784,202.946C413.138,190.098,404.485,178.857,394.827,169.222C411.729,159.988,422.796,145.735,428.028,126.465C431.247,114.822,432.454,99.365,431.650,80.094C431.247,72.065,426.015,60.823,415.955,46.370C407.101,32.319,397.443,20.676,386.979,11.442C376.113,1.405,368.668,-1.807,364.644,1.807C362.229,3.814,361.425,6.223,362.229,9.033C362.632,10.639,364.242,13.851,367.059,18.669C371.888,26.698,375.510,33.925,377.924,40.348C381.546,51.590,383.156,64.035,382.754,77.685L382.150,86.719C382.150,94.748,381.748,100.369,380.943,103.581C379.333,109.201,375.912,113.216,370.681,115.625C364.644,118.435,355.388,119.840,342.913,119.840C336.474,119.840,331.242,118.435,327.218,115.625C324.803,114.420,321.785,111.510,318.163,106.893C314.541,102.276,311.120,99.164,307.901,97.558C302.669,94.347,295.626,92.741,286.773,92.741C268.663,92.741,257.194,101.372,252.365,118.636C247.535,101.372,236.066,92.741,217.956,92.741C208.700,92.741,201.457,94.347,196.225,97.558C193.005,99.164,189.585,102.276,185.963,106.893C182.341,111.510,179.323,114.420,176.908,115.625C172.884,118.435,167.853,119.840,161.817,119.840C149.341,119.840,140.085,118.435,134.049,115.625C128.817,113.216,125.396,109.201,123.787,103.581C122.579,100.369,121.976,94.748,121.976,86.719L121.976,77.685C121.171,64.035,122.780,51.590,126.805,40.348C128.817,33.925,132.238,26.698,137.067,18.669C140.286,13.851,142.097,10.639,142.500,9.033C142.902,6.223,141.896,3.814,139.481,1.807C138.677,0.602,137.268,0.000,135.256,0.000ZZ" style="fill: rgb(0, 0, 0);"/></g></g></g></g></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="512px" height="455px" viewBox="0 0 512 455" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>GoToSocial</title>
<g id="All-Fediverse-Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="GoToSocial" transform="translate(0.000000, -28.000000)" fill="#000000">
<path d="M236.26129,28.0002521 L236.71697,28.0015805 C251.941405,28.1490316 259.643356,36.2351268 259.822823,52.2598662 C286.734159,53.4224931 307.633102,56.3847713 322.519654,61.1467009 C344.849482,68.2895953 365.81185,79.4219909 405.024225,98.8529385 C444.2366,118.283886 464.910741,105.035987 478.543286,126.187742 C487.631649,140.288912 483.386805,154.762349 465.808755,169.608053 C478.474037,193.347237 485.674943,213.271103 487.411472,229.379649 C488.22547,236.93053 488.97072,245.315978 489.609195,253.714914 L489.735455,255.394638 C491.066805,273.30842 491.900679,291.034466 491.86789,300.600892 C491.86599,301.155246 510.207379,316.953487 511.646799,332.692839 C513.372855,351.566421 508.772624,366.461825 497.846108,377.379052 C500.281135,413.217328 494.279661,433.592015 479.841687,438.503113 C465.403713,443.41421 454.306907,437.91014 446.55127,421.990902 C440.391567,431.908283 432.716179,438.637637 423.525106,442.178964 C414.334032,445.720291 406.818011,445.124438 400.977041,440.391405 C361.376941,466.950985 315.510611,481.105445 263.378049,482.854783 C211.245487,484.604121 162.702757,470.548599 117.749859,440.688217 C107.586774,446.378087 98.1990696,448.042213 89.586747,445.680595 C80.9744244,443.318978 73.6418825,437.361906 67.5891212,427.809381 C52.6212326,443.8953 39.4915711,448.296956 28.2001366,441.014351 C16.9087021,433.731745 13.9353092,417.246331 19.2799577,391.558109 C5.71532613,385.633719 -0.69164336,374.4286 0.0590492446,357.94275 C0.809741849,341.4569 9.84528477,322.028034 27.165678,299.656152 C25.0196973,281.822097 24.8242028,266.562363 26.5791942,253.876949 C29.2907129,234.277574 32.4420269,211.02483 45.8959279,184.049984 C72.4115946,130.886518 107.136209,98.8729866 150.069772,88.0093912 C135.991675,78.5724245 130.099233,69.254129 132.392445,60.0545046 C135.832263,46.2550682 151.452736,42.4471116 166.66003,44.0375196 C176.798226,45.0977917 188.436319,49.9223112 201.574309,58.5110783 C209.614235,38.4337043 221.025371,28.2650496 235.807716,28.0051142 L236.26129,28.0002521 Z M260.394231,335.527197 C254.594317,341.762297 248.18218,344.771272 241.157822,344.554119 C237.228423,344.432645 230.518403,341.738667 225.956181,341.121765 C223.21891,340.751632 221.33417,341.893491 220.721127,343.339848 C219.351563,346.571075 219.372269,350.039131 225.879827,353.93083 C229.701633,356.216375 233.715436,356.639106 239.23511,356.950119 C246.836469,357.378427 255.526191,355.02158 259.993275,350.915638 C260.938747,350.046603 270.294139,359.188033 286.184537,356.459048 C299.469266,354.177556 300.941466,347.968015 300.998913,345.557024 C301.056361,343.146034 298.841225,339.497149 293.093694,341.466056 C289.997892,342.526571 283.698946,344.751943 275.65902,344.402247 C271.800778,344.234433 266.712515,341.276083 260.394231,335.527197 Z M160.537914,214.199034 C127.868752,211.836697 97.6018535,221.40391 69.7372192,242.900672 C67.4464347,255.402338 66.0555568,267.671794 65.5645853,279.709038 C65.0736138,291.746283 65.8965198,303.049947 68.0333032,313.620031 C100.71876,320.717606 122.507064,324.266393 133.398213,324.266393 C200.56656,325.79579 228.347142,307.040689 228.347142,277.862417 C228.347142,248.684146 209.541658,217.74254 160.537914,214.199034 Z M450.446456,242.422169 C421.401021,220.692831 390.877868,211.16793 358.876997,213.847465 C310.875692,217.866769 292.080816,249.19698 291.303018,277.862417 C290.525219,306.527855 319.0836,325.79579 386.251946,324.266393 C397.143096,324.266393 418.969926,320.790546 451.732438,313.838853 C454.129204,301.787639 455.157087,290.302642 454.816087,279.383861 C454.475087,268.465081 453.018544,256.144517 450.446456,242.422169 Z M263.011755,302.01022 L262.373427,302.015934 C261.525103,302.023765 260.688751,302.031891 259.874648,302.0336 L259.570422,302.033927 C258.559946,302.033927 257.525997,302.036879 256.486775,302.053157 L255.862753,302.064607 C247.850096,302.234196 239.740482,303.317005 239.841525,310.050083 C239.958316,317.832471 246.949682,321.781704 259.683169,322.499188 C272.416656,323.216672 281.81057,316.023799 281.13998,308.579864 C280.552271,302.055965 271.335023,301.93938 263.011755,302.01022 Z M140.496108,290.146872 C124.690791,286.451618 137.514687,245.834949 172.970928,247.567979 C208.427169,249.30101 211.923426,289.627283 198.019173,290.941494 C184.11492,292.255706 191.571013,271.484604 170.758444,271.334863 C149.945876,271.185121 156.301425,293.842127 140.496108,290.146872 Z M320.427939,290.326992 C304.622623,286.631737 316.849181,245.390397 352.305421,247.123427 C387.761662,248.856458 393.255839,290.281397 378.20473,290.900661 C371.582242,291.173138 369.208888,287.463633 366.833352,283.247318 L366.509002,282.669551 C363.582548,277.44725 360.361747,271.699515 348.987973,271.850254 C327.92543,272.129401 336.233256,294.022246 320.427939,290.326992 Z"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg class="w-6 h-6 text-gray-800 dark:text-white" aria-hidden="true"
xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M9.529 9.988a2.502 2.502 0 1 1 5 .191A2.441 2.441 0 0 1 12 12.582V14m-.01 3.008H12M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
</svg>

After

Width:  |  Height:  |  Size: 444 B

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="512px" height="488px" viewBox="0 0 512 488" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Hometown</title>
<g id="All-Fediverse-Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Hometown" transform="translate(0.000000, -12.000000)" fill="#000000" fill-rule="nonzero">
<g transform="translate(0.000000, 12.000000)">
<path d="M349.267241,306 L20.7327586,306 C9.56896552,306 0,315.461538 0,326.5 C0,337.538462 9.56896552,347 20.7327586,347 L349.267241,347 C360.431034,347 370,337.538462 370,326.5 C370,315.461538 360.431034,306 349.267241,306 Z" id="Path"></path>
<path d="M349.267241,375 L20.7327586,375 C9.56896552,375 0,384.461538 0,395.5 C0,406.538462 9.56896552,416 20.7327586,416 L349.267241,416 C360.431034,416 370,406.538462 370,395.5 C370,384.461538 360.431034,375 349.267241,375 Z" id="Path"></path>
<path d="M349.267241,445 L20.7327586,445 C9.56896552,445 0,454.461538 0,465.5 C0,476.538462 9.56896552,486 20.7327586,486 L349.267241,486 C360.431034,486 370,476.538462 370,465.5 C370,454.461538 360.431034,445 349.267241,445 Z" id="Path"></path>
<path d="M491.5,306 C480.461538,306 471,315.578947 471,326.754386 L471,467.245614 C471,478.421053 480.461538,488 491.5,488 C502.538462,488 512,478.421053 512,467.245614 L512,326.754386 C510.423077,313.982456 500.961538,306 491.5,306 Z" id="Path"></path>
<path d="M421.5,306 C410.461538,306 401,315.578947 401,326.754386 L401,467.245614 C401,478.421053 410.461538,488 421.5,488 C432.538462,488 442,478.421053 442,467.245614 L442,326.754386 C440.423077,313.982456 432.538462,306 421.5,306 Z" id="Path"></path>
<path d="M473.181818,216.929825 C493.863636,205.754386 505,177.017544 505,127.526316 C505,70.0526316 490.681818,3 452.5,3 C414.318182,3 400,70.0526316 400,127.526316 C400,177.017544 411.136364,205.754386 431.818182,216.929825 L431.818182,255.245614 C431.818182,266.421053 441.363636,276 452.5,276 C463.636364,276 473.181818,266.421053 473.181818,255.245614 L473.181818,216.929825 Z M452.5,49.2982456 C458.863636,62.0701754 465.227273,89.2105263 465.227273,127.526316 C465.227273,167.438596 457.272727,181.807018 452.5,181.807018 C447.727273,181.807018 439.772727,167.438596 439.772727,127.526316 C441.363636,89.2105263 447.727273,62.0701754 452.5,49.2982456 Z" id="Shape"></path>
<path d="M365.214344,124.439306 L314.181464,59.0289017 C310.991909,54.2427746 304.612799,51.0520231 298.233689,51.0520231 L272.71725,51.0520231 L272.71725,20.7398844 C272.71725,9.57225434 263.148585,0 251.985142,0 C240.8217,0 231.253035,9.57225434 231.253035,20.7398844 L231.253035,52.6473988 L169.056713,52.6473988 L151.514161,52.6473988 L68.5857322,52.6473988 C62.2066223,52.6473988 57.4222898,55.8381503 52.6379574,60.6242775 L1.60507799,126.034682 C0.421454083,127.424404 -0.0800286797,127.926075 0.0103005136,129.225434 C0.0103005136,129.225434 0.0103005136,171.236994 0.0103005136,255.260116 C0.0103005136,266.427746 9.5789654,276 20.7424078,276 L103.670837,276 L221.68437,276 L349.266569,276 C360.430011,276 369.999898,266.427746 369.999898,255.260116 L369.999898,137.202312 C370.01425,128.427746 368.509802,128.427746 365.214344,124.439306 Z M122.808167,236.115607 L39.8797375,236.115607 L39.8797375,157.942197 L202.547041,157.942197 L202.547041,236.115607 L122.808167,236.115607 Z M231.253035,118.057803 L212.115705,92.5317919 L288.665025,92.5317919 L307.802354,118.057803 L231.253035,118.057803 Z M161.082826,92.5317919 L180.220156,118.057803 L60.6118448,118.057803 L79.7491745,92.5317919 L161.082826,92.5317919 Z M242.416478,157.942197 L330.129239,157.942197 L330.129239,236.115607 L242.416478,236.115607 L242.416478,157.942197 Z" id="Shape"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="512px" height="486px" viewBox="0 0 512 486" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Hubzilla</title>
<g id="All-Fediverse-Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Hubzilla" transform="translate(0.000000, -13.000000)" fill="#000000" fill-rule="nonzero">
<path d="M372.699099,13 C391.14955,13 408.984985,16.375 426.205405,23.125 C443.425826,29.875 458.493694,39.8465909 471.409009,53.0397727 C484.324324,66.2329545 494.318318,81.2670455 501.390991,98.1420455 C508.463664,115.017045 512,132.659091 512,151.068182 C512,176.227273 505.696096,199.392045 493.088288,220.5625 C480.48048,241.732955 463.567568,258.454545 442.34955,270.727273 C421.131532,283 397.914715,289.136364 372.699099,289.136364 C367.778979,289.136364 362.551351,288.829545 357.016216,288.215909 L341.333333,360.931818 C355.478679,366.454545 366.702703,375.198864 375.005405,387.164773 C383.308108,399.130682 387.459459,412.477273 387.459459,427.204545 C387.459459,447.454545 380.386787,464.482955 366.241441,478.289773 C352.096096,492.096591 335.183183,499 315.502703,499 C295.822222,499 278.909309,492.096591 264.763964,478.289773 C250.618619,464.482955 243.545946,447.454545 243.545946,427.204545 C243.545946,417.386364 245.698498,407.875 250.003604,398.670455 L168.821622,346.204545 C159.596396,356.636364 148.67988,364.920455 136.072072,371.056818 C123.464264,377.193182 110.087688,380.261364 95.9423423,380.261364 C69.4966967,380.261364 46.8948949,370.903409 28.1369369,352.1875 C9.37897898,333.471591 0,310.920455 0,284.534091 C0,258.147727 9.37897898,235.596591 28.1369369,216.880682 C46.8948949,198.164773 69.4966967,188.806818 95.9423423,188.806818 C111.932733,188.806818 127.000601,192.795455 141.145946,200.772727 C155.291291,208.75 166.976577,219.488636 176.201802,232.988636 L243.545946,199.852273 C237.395796,183.897727 234.320721,167.636364 234.320721,151.068182 C234.320721,132.659091 237.857057,115.017045 244.92973,98.1420455 C252.002402,81.2670455 261.996396,66.2329545 274.911712,53.0397727 C287.827027,39.8465909 302.741141,29.875 319.654054,23.125 C336.566967,16.375 354.248649,13 372.699099,13 Z M252.817073,222 L185.603659,253.929825 C188.672764,263.660819 190.207317,273.695906 190.207317,284.035088 C190.207317,298.631579 187.138211,312.315789 181,325.087719 L262.02439,378 C276.142276,362.795322 293.636179,355.192982 314.506098,355.192982 L317.268293,355.192982 L332,283.122807 C315.426829,278.25731 300.388211,270.502924 286.884146,259.859649 C273.380081,249.216374 262.02439,236.596491 252.817073,222 Z"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.2 KiB

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Lemmy</title>
<g id="Lemmy" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M397.052766,104.831548 C414.237987,94.9074021 432.111984,89.7104271 448.862875,90.0124577 C451.255857,90.0556089 453.625872,90.2117664 455.967716,90.4815792 C474.702445,92.6400593 491.576901,102.609803 501.921745,120.033092 C512.058348,137.105618 514.552409,155.904403 509.386162,173.323537 C504.219915,190.742677 491.705218,206.568495 473.177459,219.105843 C473.065651,219.181384 472.95189,219.254001 472.836299,219.323612 C457.040804,228.851055 441.314131,235.29364 424.481137,238.651921 C424.808584,245.724761 424.695533,252.976446 424.126979,260.383267 C422.40558,282.808666 414.161979,303.446382 401.866945,321.657476 L443.200661,338.536158 C447.806567,340.344148 450.044477,345.571227 448.17456,350.153662 C446.304644,354.736097 441.049373,356.903409 436.494383,354.970636 L390.711476,336.273968 C382.018083,346.452384 372.09857,355.680947 361.486318,363.807055 C361.301529,363.948557 361.113756,364.085477 360.928545,364.226341 L388.855117,401.217736 C391.879748,405.127026 391.128988,410.754864 387.185456,413.733966 C383.241923,416.713067 377.625303,415.895402 374.694176,411.915481 L346.359285,374.383456 C331.167711,384.074517 315.061255,391.684641 299.142411,396.795191 C290.958621,411.634102 274.819204,422 256,422 C237.357864,422 221.227796,412.366618 212.975627,397.233981 C196.896071,392.214886 180.59887,384.632398 165.246467,374.905663 L137.305809,411.915481 C134.374683,415.895402 128.758062,416.713067 124.81453,413.733966 C120.870997,410.754864 120.120238,405.127026 123.144868,401.217736 L150.655548,364.777804 C150.242999,364.4654 149.826956,364.158394 149.416536,363.842812 C138.676715,355.584638 128.669377,346.178894 119.959604,335.790757 L72.9929144,354.970636 C68.4379247,356.903409 63.1826541,354.736097 61.3127374,350.153662 C59.4428207,345.571227 61.6807308,340.344148 66.2866368,338.536158 L108.989334,321.097342 C97.0734289,302.994563 89.2173232,282.510097 87.864345,260.260842 C87.4166665,252.898653 87.4053875,245.710499 87.8188741,238.713678 C70.8723305,235.372476 55.0532345,228.90778 39.1637029,219.323612 C39.0481123,219.254001 38.9343516,219.181384 38.8225429,219.105843 C20.2947807,206.568501 7.78009463,190.742677 2.61384071,173.323537 C-2.55241376,155.904403 -0.0583433904,137.105618 10.0782566,120.033092 C20.4231137,102.609809 37.2975569,92.6400593 56.0322859,90.4815792 C58.3741305,90.2117664 60.7441449,90.0556144 63.1371277,90.0124577 C63.660593,90 64.1852062,90 64.7108065,90 C81.0045087,90.0401934 98.2990328,95.2175592 114.94722,104.831576 C127.970577,112.352314 139.6826,123.986354 148.7158,136.613859 C148.786901,136.716559 148.855512,136.820961 148.921578,136.926973 C175.809488,121.681446 211.406667,113.250179 255.873273,112.523898 C259.570425,112.463456 263.208242,112.463639 266.786138,112.522788 C306.675368,113.182232 339.141454,121.225421 364.093231,135.509823 C373.012997,123.311406 384.410983,112.131931 397.052766,104.831548 Z M256.000463,343.510345 C235.626629,343.510345 222.178296,356.926912 222.633891,375.058591 C223.112646,394.111913 236.727722,407 256.000463,407 C274.487921,407 289.323819,392.470622 289.364842,375.236081 C289.408337,356.780479 276.220324,343.510345 256.000463,343.510345 Z M178.391906,274 C165.472908,274 155,284.511883 155,297.478955 C155,310.446016 165.472908,320.957905 178.391906,320.957905 C191.310893,320.957905 201.783807,310.446016 201.783807,297.478955 C201.783807,284.511883 191.310899,274 178.391906,274 Z M333.821654,274.214351 C321.020603,274.214351 310.643302,284.630263 310.643302,297.478955 C310.643302,310.327636 321.020603,320.743555 333.821654,320.743555 C346.622699,320.743555 357,310.327636 357,297.478955 C357,284.630263 346.622704,274.214351 333.821654,274.214351 Z" fill="#000000"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="478px" height="513px" viewBox="0 0 478 513" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Mastodon</title>
<g id="MASTODON" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Mastodon" transform="translate(-17.000000, 0.000000)" fill="#000000" fill-rule="nonzero">
<path d="M494.981974,168.430153 C494.981974,57.1452892 422.119066,24.5154687 422.119066,24.5154687 C350.62877,-8.34333322 160.750547,-7.99986143 89.9465582,24.5154687 C89.9465582,24.5154687 17.0836496,57.1452892 17.0836496,168.430153 C17.0836496,300.895775 9.53427443,465.418765 137.873652,499.422472 C184.199363,511.672966 224.00516,514.30625 256.032812,512.4744 C314.140124,509.268664 346.739698,491.751602 346.739698,491.751602 L344.795162,449.504571 C344.795162,449.504571 303.273599,462.5565 256.604734,461.068122 C210.393407,459.465253 161.665622,456.030536 154.116247,399.243199 C153.42994,394.205613 153.086787,388.939045 153.086787,383.329006 C250.999895,407.257541 334.50056,393.74765 357.491839,390.999876 C421.661528,383.329006 477.595535,343.715259 484.687372,307.53623 C495.89705,250.519912 494.981974,168.430153 494.981974,168.430153 Z M409.421447,312 L356.1579,312 L356.1579,181.336506 C356.1579,124.47157 283.006249,122.297659 283.006249,189.231235 L283.006249,260.741466 L230.085601,260.741466 L230.085601,189.231235 C230.085601,122.297659 156.93395,124.47157 156.93395,181.336506 L156.93395,312 L103.556104,312 C103.556104,172.297613 97.6125328,142.778189 124.587204,111.771351 C154.190763,78.7050202 215.798169,76.5311092 243.230039,118.750752 L256.488775,141.061944 L269.747512,118.750752 C297.293681,76.3022764 359.015387,78.9338529 388.390347,111.771351 C415.479318,143.007022 409.421447,172.412029 409.421447,312 Z"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -0,0 +1 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="512" xmlns="http://www.w3.org/2000/svg" height="512" id="screenshot-24b0466e-7c13-801d-8004-20e978d4dcf7" viewBox="0 0 512 512" style="-webkit-print-color-adjust: exact;" fill="none" version="1.1"><g id="shape-24b0466e-7c13-801d-8004-20e978d4dcf7"><defs><clipPath class="frame-clip-def frame-clip" id="frame-clip-24b0466e-7c13-801d-8004-20e978d4dcf7-rumext-id-18"><rect rx="20" ry="20" x="0" y="0" width="511.9999999999998" height="512.0000000000018" transform="matrix(1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)"/></clipPath></defs><g clip-path="url(#frame-clip-24b0466e-7c13-801d-8004-20e978d4dcf7-rumext-id-18)" fill="none"><clipPath class="frame-clip-def frame-clip" id="frame-clip-24b0466e-7c13-801d-8004-20e978d4dcf7-rumext-id-18"><rect rx="20" ry="20" x="0" y="0" width="511.9999999999998" height="512.0000000000018" transform="matrix(1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)"/></clipPath><g class="fills" id="fills-24b0466e-7c13-801d-8004-20e978d4dcf7"><rect rx="20" ry="20" x="0" y="0" transform="matrix(1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)" width="511.9999999999998" height="512.0000000000018" class="frame-background"/></g><g class="frame-children"><g id="shape-24b0466e-7c13-801d-8004-20e9834a3bd1" width="512px" height="359px" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" rx="0" ry="0" style="fill: rgb(0, 0, 0);"><g id="shape-24b0466e-7c13-801d-8004-20e9834f984c"><g class="fills" id="fills-24b0466e-7c13-801d-8004-20e9834f984c"><path fill-rule="nonzero" rx="0" ry="0" d="M190.235,359.297C168.041,359.376,148.986,346.005,140.008,330.449C135.201,323.658,125.707,321.235,125.574,330.449L125.574,372.999C125.574,390.091,119.351,404.878,106.877,417.349C94.760,429.450,79.982,435.500,62.516,435.500C45.433,435.500,30.642,429.450,18.168,417.336C6.065,404.878,-0.000,390.091,-0.000,372.999L-0.000,139.001C-0.000,125.829,3.747,113.900,11.229,103.217C19.055,92.175,29.040,84.510,41.156,80.247C47.997,77.740,55.230,76.471,62.516,76.500C81.756,76.500,97.792,83.980,110.611,98.940L174.596,173.184C176.026,174.243,180.211,182.412,190.222,182.412C200.259,182.412,204.987,174.243,206.404,173.171L269.846,98.940C283.035,83.980,299.244,76.500,318.484,76.500C325.609,76.500,332.733,77.745,339.857,80.247C351.960,84.510,361.759,92.162,369.254,103.217C377.080,113.900,381.000,125.829,381.000,139.001L381.000,372.999C381.000,390.091,374.776,404.878,362.302,417.349C350.186,429.450,335.394,435.500,317.941,435.500C300.846,435.500,286.068,429.450,273.581,417.336C261.477,404.878,255.426,390.091,255.426,372.999L255.426,330.449C254.366,318.839,244.104,326.160,240.462,330.449C230.848,348.256,212.416,359.217,190.235,359.297ZL190.235,359.297ZZM457.730,184.500C442.830,184.500,430.063,179.332,419.427,168.996C409.142,158.306,404.000,145.474,404.000,130.500C404.000,115.526,409.142,102.871,419.427,92.534C430.063,81.845,442.830,76.500,457.730,76.500C472.629,76.500,485.401,81.845,496.046,92.534C506.682,102.871,512.000,115.526,512.000,130.500C512.000,145.474,506.682,158.306,496.046,168.996C485.401,179.332,472.629,184.500,457.730,184.500ZL457.730,184.500ZZM458.257,195.500C473.156,195.500,485.753,200.831,496.046,211.493C506.682,222.155,512.000,234.958,512.000,249.902L512.000,381.639C512.000,396.575,506.682,409.374,496.046,420.036C485.761,430.345,473.165,435.500,458.257,435.500C443.367,435.500,430.599,430.345,419.954,420.036C409.318,409.374,404.000,396.575,404.000,381.639L404.000,249.902C404.000,234.967,409.318,222.164,419.954,211.493C430.590,200.831,443.358,195.500,458.257,195.500ZZ" style="fill: rgb(0, 0, 0);"/></g></g></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg class="w-6 h-6 text-gray-800 dark:text-white" aria-hidden="true"
xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M9.529 9.988a2.502 2.502 0 1 1 5 .191A2.441 2.441 0 0 1 12 12.582V14m-.01 3.008H12M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
</svg>

After

Width:  |  Height:  |  Size: 444 B

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Osada</title>
<g id="All-Fediverse-Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Osada" fill="#000000" fill-rule="nonzero">
<path d="M503.380096,231.155575 C501.979853,230.515148 486.383283,230.426811 465.35808,230.625561 C460.417503,193.441478 445.902988,158.277983 423.307665,128.752401 C438.171793,113.978248 449.158332,102.781696 449.998473,101.059148 C455.38403,90.1055229 425.871189,59.4751162 413.979879,64.1348196 C412.558097,64.6869178 401.528474,75.8834703 386.901308,91.1434664 C356.374564,66.5040129 319.858676,50.887369 281.301342,45.9818341 C281.602927,25.6425318 281.624474,10.6254609 281.042833,8.83666087 C277.29449,-2.80156868 235.308698,-3.08866415 230.09548,8.83666087 C229.492301,10.2279526 229.384585,25.3333606 229.556924,45.9376656 C191.149284,50.7579649 154.74733,66.2101478 124.258543,90.6355368 C109.997594,75.5522148 99.2049408,64.4219151 97.5246507,63.5606372 C86.8397056,58.0396559 56.960646,88.2946387 61.5060549,100.484966 C62.0446106,101.942511 72.8803473,113.161139 87.679855,128.067797 C64.9509695,157.562447 50.3020446,192.734926 45.2416777,229.96305 C25.2074121,229.65387 10.3648214,229.631786 8.61990146,230.228053 C-2.73284957,234.070655 -3.01289846,277.112234 8.61990146,282.45655 C9.97706156,283.0749 24.6042291,283.185313 44.5738684,283.008648 C48.9408199,321.016366 63.7726864,356.964116 87.3351766,386.648524 C72.7295522,401.157665 62.0230682,412.089215 61.1829214,413.811762 C55.7973658,424.765388 85.310208,455.395796 97.201519,450.736093 C98.6233003,450.183994 109.803716,438.832852 124.603221,423.396189 C155.175493,446.584924 191.151394,461.13763 228.932198,465.598574 C228.630605,486.136626 228.609067,501.352455 229.190707,503.163339 C232.939051,514.801569 274.924843,515.088664 280.138061,503.163339 C280.74124,501.772056 280.848956,486.512058 280.676617,465.731079 C318.904372,461.37894 355.317799,446.692709 386.190413,423.175346 C400.817587,438.656178 411.933372,450.117742 413.635209,451.001095 C424.320145,456.522077 454.199211,426.267101 449.653803,414.076765 C449.115247,412.619229 438.236425,401.356423 423.372288,386.383521 C446.672833,356.918616 461.383347,321.30737 465.810466,283.649083 C486.340199,283.980338 501.592098,284.002423 503.380096,283.406156 C514.732851,279.541469 515.012898,236.49989 503.380096,231.155575 Z M429,231.155553 C390.48765,231.799999 349.693413,232.777783 341.168597,233 C339.374504,226.97871 336.971749,221.168959 334,215.666667 C355.102856,195.180482 376.142318,174.624821 397.118064,154 C413.584339,176.707804 424.519075,203.170302 429,231.155553 L429,231.155553 Z M361,117.461536 C335.728866,144.186812 309.234947,172.626373 301.426206,181 C294.135447,176.414283 286.248741,172.907083 278,170.58242 C278.407598,156.69231 279.523132,118.692307 280.31688,83 C309.604699,87.3804631 337.348579,99.2304846 361,117.461536 Z M230.283624,83 C230.841443,119.151313 231.678181,157.6772 232,171.591791 C223.925539,173.944861 216.206597,177.447802 209.064889,182 C189.455624,160.410987 169.767186,138.899064 150,117.464695 C173.554853,99.2145818 201.157731,87.3650325 230.283624,83 L230.283624,83 Z M113.226756,154 C134.081645,174.633748 155.006185,195.193704 176,215.679499 C172.984128,221.14449 170.592973,226.962066 168.783451,233 C157.538553,232.647414 118.030613,231.435427 81,230.553972 C85.5839499,202.761106 96.6372196,176.504299 113.226756,154 L113.226756,154 Z M81,282.809318 C117.931333,282.213567 157.589578,281.264774 169.141358,281 C171.052335,287.553253 173.650411,293.797602 177,299.622713 C169.012527,307.345411 139.896889,335.522198 112.885487,362 C95.758225,338.888772 84.7705219,311.599752 81,282.809318 L81,282.809318 Z M149,397.903875 C175.598706,369.576968 203.788599,339.098362 210.368395,332 C217.120204,335.9041 224.38808,338.943083 232,341.006042 C231.569945,355.64642 230.451809,394.776162 229.634713,431 C200.542445,426.916479 172.859876,415.554309 149,397.903892 L149,397.903875 Z M279.751804,431 C279.189501,395.028021 278.324415,356.150095 278,341.598393 C286.019616,339.449491 293.7219,336.221577 300.903198,332 C307.348093,338.978649 335.441816,369.358907 362,397.691795 C337.712128,415.547841 309.452188,426.992321 279.751804,431 L279.751804,431 Z M398.309841,361 C376.939772,339.864492 355.503047,318.799662 334,297.805841 C337.131098,292.184154 339.6121,286.208671 341.392931,280 C350.688135,280.287552 391.565418,281.570452 430,282.477338 C426.212235,311.004742 415.297254,338.050154 398.309841,361 L398.309841,361 Z"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

View file

@ -0,0 +1 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="512" xmlns="http://www.w3.org/2000/svg" height="512" id="screenshot-26e61264-c11c-807c-8004-175e3fa62e2e" viewBox="0 0 512 512" style="-webkit-print-color-adjust: exact;" fill="none" version="1.1"><g id="shape-26e61264-c11c-807c-8004-175e3fa62e2e"><defs><clipPath class="frame-clip-def frame-clip" id="frame-clip-26e61264-c11c-807c-8004-175e3fa62e2e-rumext-id-1"><rect rx="0" ry="0" x="0" y="0" width="512" height="512.0000000000005" transform="matrix(1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)"/></clipPath></defs><g clip-path="url(#frame-clip-26e61264-c11c-807c-8004-175e3fa62e2e-rumext-id-1)" fill="none"><clipPath class="frame-clip-def frame-clip" id="frame-clip-26e61264-c11c-807c-8004-175e3fa62e2e-rumext-id-1"><rect rx="0" ry="0" x="0" y="0" width="512" height="512.0000000000005" transform="matrix(1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)"/></clipPath><g class="fills" id="fills-26e61264-c11c-807c-8004-175e3fa62e2e"><rect rx="0" ry="0" x="0" y="0" transform="matrix(1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)" width="512" height="512.0000000000005" class="frame-background"/></g><g class="frame-children"><g id="shape-26e61264-c11c-807c-8004-175f495e9799" rx="0" ry="0" style="fill: rgb(0, 0, 0);"><g id="shape-26e61264-c11c-807c-8004-175f495e979a" rx="0" ry="0" style="fill: rgb(0, 0, 0);"><g id="shape-26e61264-c11c-807c-8004-175f495e979b"><g class="fills" id="fills-26e61264-c11c-807c-8004-175f495e979b"><path fill-rule="evenodd" rx="0" ry="0" d="M134.312,0.000L225.897,0.000L225.897,512.000L97.000,512.000L97.000,37.298C97.000,16.699,113.705,0.000,134.312,0.000ZZM286.849,387.000L415.746,387.000L415.746,474.838C415.746,495.362,399.041,512.000,378.434,512.000L286.849,512.000L286.849,387.000ZZM286.849,0.000L415.746,0.000L415.746,216.747C415.746,237.321,399.041,254.000,378.434,254.000L286.849,254.000L286.849,0.000ZZ"/></g></g></g></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg class="w-6 h-6 text-gray-800 dark:text-white" aria-hidden="true"
xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M9.529 9.988a2.502 2.502 0 1 1 5 .191A2.441 2.441 0 0 1 12 12.582V14m-.01 3.008H12M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
</svg>

After

Width:  |  Height:  |  Size: 444 B

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="494px" height="512px" viewBox="0 0 494 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Socialhome</title>
<g id="All-Fediverse-Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Socialhome" fill="#000000" fill-rule="nonzero">
<path d="M165,171 L323,171 L323,378 L165.009672,378 L165,171 Z M353,286 L469,286 L469,512 L353,512 L353,286 Z M30,378 L134,378 L134,171 L30.0481481,171 M324,512 L31,512 L31.0489557,403 L324,403 M350,171 L463,171 L463,264 L350,264 L350,171 Z M482.413603,99.0949642 L253.051932,2.32539015 C248.608438,-0.771828985 221.462465,-0.771828985 216.063645,2.30563118 L8.78226671,100.082913 C2.24685288,103.145554 -1.18252469,110.273604 0.370493442,117.396714 C1.9382089,124.549462 30.8723574,145 30.8723574,145 L462.973931,145 C462.973931,145 494,122.622962 494,114.017929 C494,106.756506 489.071495,100.809055 482.408704,99.0900244 L482.413603,99.0949642 Z"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,6 @@
- Calckey
- Diaspora
- Ecko
- Groundpolis
- Misty
- XMPP

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg class="w-6 h-6 text-gray-800 dark:text-white" aria-hidden="true"
xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M9.529 9.988a2.502 2.502 0 1 1 5 .191A2.441 2.441 0 0 1 12 12.582V14m-.01 3.008H12M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
</svg>

After

Width:  |  Height:  |  Size: 444 B

View file

@ -0,0 +1 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="512" xmlns="http://www.w3.org/2000/svg" height="512" id="screenshot-e896cdf2-4b36-80a4-8004-194556c44de5" viewBox="0 0 512 512" style="-webkit-print-color-adjust: exact;" fill="none" version="1.1"><g id="shape-e896cdf2-4b36-80a4-8004-194556c44de5"><defs><clipPath class="frame-clip-def frame-clip" id="frame-clip-e896cdf2-4b36-80a4-8004-194556c44de5-rumext-id-1"><rect rx="20" ry="20" x="0" y="0" width="512" height="512" transform="matrix(1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)"/></clipPath></defs><g clip-path="url(#frame-clip-e896cdf2-4b36-80a4-8004-194556c44de5-rumext-id-1)" fill="none"><clipPath class="frame-clip-def frame-clip" id="frame-clip-e896cdf2-4b36-80a4-8004-194556c44de5-rumext-id-1"><rect rx="20" ry="20" x="0" y="0" width="512" height="512" transform="matrix(1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)"/></clipPath><g class="fills" id="fills-e896cdf2-4b36-80a4-8004-194556c44de5"><rect rx="20" ry="20" x="0" y="0" transform="matrix(1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000)" width="512" height="512" class="frame-background"/></g><g class="frame-children"><g id="shape-e896cdf2-4b36-80a4-8004-19454f9fda3f"><g class="fills" id="fills-e896cdf2-4b36-80a4-8004-19454f9fda3f"><path fill-rule="nonzero" rx="0" ry="0" d="M440.656,124.650L341.742,246.108L313.142,218.676L241.239,354.456L209.347,328.098L71.344,512.000L130.887,257.115L166.939,290.241L206.697,130.971L253.944,167.958L295.296,-0.000L440.656,124.650ZZ" style="fill: rgb(0, 0, 0);"/></g></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1,190 @@
(async () => {
// List of suported fediverse software.
const knownSoftware = [
"calckey",
"diaspora",
"ecko",
"firefish",
"friendica",
"glitch-soc",
"gnu_social",
"gotosocial",
"groundpolis",
"hometown",
"hubzilla",
"kepi",
"lemmy",
"mastodon",
"misskey",
"misty",
"osada",
"pleroma",
"socialhome",
"xmpp",
"zap",
];
const supportedSoftware = [
"diaspora",
"glitch-soc",
"firefish",
"hometown",
"lemmy",
"mastodon",
"misskey",
];
// Helper functions.
const getFSBPath = () => {
var scripts = document.getElementsByClassName("fsb-script")[0];
src = scripts.src;
return src.replace("/script.min.js", "");
};
const updateTheIcon = (iconElement, software) => {
const domainInput =
iconElement.parentElement.parentElement.parentElement.getElementsByClassName(
"fsb-domain"
)[0];
const supportNote =
iconElement.parentElement.parentElement.parentElement.getElementsByClassName(
"fsb-support-note"
)[0];
const supportNoteLink =
iconElement.parentElement.parentElement.parentElement.getElementsByClassName(
"fsb-support-note-link"
)[0];
iconElement.src = `${getFSBPath()}/icons/${software}.svg`;
if (supportedSoftware.includes(software)) {
supportNote.classList.add("fsb-d-none");
} else {
supportNoteLink.href = `https:\\${domainInput.value}`;
supportNoteLink.innerHTML = domainInput.value;
supportNote.classList.remove("fsb-d-none");
}
};
const updateIcon = async (domainInput) => {
clearTimeout(typingTimer);
if (domainInput.value) {
typingTimer = setTimeout(() => {
doneTyping(domainInput);
}, doneTypingInterval);
} else {
const iconEl =
domainInput.parentElement.getElementsByClassName("fsb-icon")[0];
updateTheIcon(iconEl, "question");
}
};
const doneTyping = async (el) => {
const domain = getDomain(el.value);
const resp = await fetch(
`https://fediverse-info.stefanbohacek.dev/node-info?domain=${domain}`
);
const respJSON = await resp.json();
const software = respJSON?.software?.name;
const iconEl = el.parentElement.getElementsByClassName("fsb-icon")[0];
el.dataset.software = software;
if (software && knownSoftware.includes(software)) {
updateTheIcon(iconEl, software);
} else {
updateTheIcon(iconEl, "question");
}
};
const getPageTitle = () => {
let pageTitle = document.title;
try {
pageTitle = document
.querySelector("meta[property='og:title']")
.getAttribute("content");
} catch (error) {
// noop
}
return encodeURIComponent(pageTitle);
};
const getPageDescription = () => {
let pageDescription = "";
const metaDescription =
document.querySelector("meta[name='description']") ||
document.querySelector("meta[property='og:description']") ||
null;
if (metaDescription && metaDescription.getAttribute) {
pageDescription = metaDescription.getAttribute("content");
}
return encodeURIComponent(pageDescription);
};
const getSelectedText = () => {
// https://stackoverflow.com/a/5379408
let text = "";
if (window.getSelection) {
text = window.getSelection().toString();
} else if (document.selection && document.selection.type != "Control") {
text = document.selection.createRange().text;
}
// return text.replace(/(\r\n|\n|\r)/gm, "");
return text;
};
const getPageURL = () => encodeURIComponent(window.location.href);
const getDomain = (str) => str.replace(/(^\w+:|^)\/\//, "");
// Main script.
let typingTimer;
const doneTypingInterval = 1300;
const savedDomain = localStorage.getItem("fsb-domain");
[...document.getElementsByClassName("fsb-prompt")].forEach((fsbPrompt) => {
const domainInput = fsbPrompt.getElementsByClassName("fsb-domain")[0];
if (savedDomain) {
domainInput.value = savedDomain;
updateIcon(domainInput);
}
domainInput.addEventListener("input", () => {
updateIcon(domainInput);
});
fsbPrompt.addEventListener("submit", (ev) => {
ev.preventDefault();
const domain = getDomain(domainInput?.value?.trim());
if (domain?.length) {
const shareText = getSelectedText() || getPageTitle();
localStorage.setItem("fsb-domain", domain);
let shareURL = `https://${domain}/share?text=${
// getPageTitle() + " " + getPageURL()
shareText + "%0A%0A" + getPageURL()
}`;
if (domainInput?.dataset?.software) {
if (domainInput.dataset.software === "diaspora") {
shareURL = `https://${domain}/bookmarklet?url=${getPageURL()}&title=${shareText}&note=${getPageDescription()}`;
}
}
window.open(shareURL);
}
});
});
})();

1
fediverse-share-button/script.min.js vendored Normal file
View file

@ -0,0 +1 @@
(async ()=>{var a=['calckey','diaspora','ecko','firefish','friendica','glitch-soc','gnu_social','gotosocial','groundpolis','hometown','hubzilla','kepi','lemmy','mastodon','misskey','misty','osada','pleroma','socialhome','xmpp','zap'],b=['diaspora','glitch-soc','firefish','hometown','lemmy','mastodon','misskey'],c=()=>{var A=document.getElementsByClassName('fsb-script')[0];src=A.src;return src.replace('/script.js','')},d=(_,B)=>{const C=_.parentElement.parentElement.parentElement.getElementsByClassName('fsb-domain')[0],D=_.parentElement.parentElement.parentElement.getElementsByClassName('fsb-support-note')[0],E=_.parentElement.parentElement.parentElement.getElementsByClassName('fsb-support-note-link')[0];_.src=`${c()}/icons/${B}.svg`;b.includes(B)?D.classList.add('fsb-d-none'):E.href=`https:\\${C.value}`},e=_a=>{clearTimeout(l);_a.value?l=setTimeout(()=>f(_a),m):d(_a.parentElement.getElementsByClassName('fsb-icon')[0],'question')},f=async _A=>{const _b=k(_A.value),_e=_d?.software?.name,F=_A.parentElement.getElementsByClassName('fsb-icon')[0];const _c=await fetch(`https://fediverse-info.stefanbohacek.dev/node-info?domain=${_b}`);const _d=await _c.json();_A.dataset.software=_e;_e&&a.includes(_e)?d(F,_e):d(F,'question')},g=()=>{try {pageTitle=document.querySelector('meta[property=\'og:title\']').getAttribute('content')} catch {}return encodeURIComponent(document.title)},h=()=>{const aA=document.querySelector('meta[name=\'description\']')||document.querySelector('meta[property=\'og:description\']')||null;aA?.getAttribute&&(pageDescription=aA.getAttribute('content'));return encodeURIComponent('')},i=()=>{let aB='';window.getSelection?aB=`${window.getSelection()}`:document.selection&&document.selection.type!='Control'&&(aB=document.selection.createRange().text);return aB},j=()=>encodeURIComponent(window.location.href),k=aC=>aC.replace(/(^\w+:|^)\/\//,''),m=1300,n=localStorage.getItem('fsb-domain');let l;for(const aD of document.getElementsByClassName('fsb-prompt')){var o=aD.getElementsByClassName('fsb-domain')[0];n&&(o.value=n,e(o));o.addEventListener('input',()=>e(o));aD.addEventListener('submit',aE=>{aE.preventDefault();var _B=k(o?.value?.trim());if(_B?.length){var _C=i()||g();localStorage.setItem('fsb-domain',_B);o?.dataset?.software&&o.dataset.software=='diaspora'&&(shareURL=`https://${_B}/bookmarklet?url=${j()}&title=${_C}&note=${h()}`);window.open(`https://${_B}/share?text=${_C+'%0A%0A'+j()}`)}})}})();

View file

@ -0,0 +1,97 @@
.fsb-prompt{
max-width: 500px;
margin-top: 52px;
}
.fsb-prompt label{
display: block;
margin-bottom: 12px;
}
.fsb-icon {
max-width: 14px;
margin-right: 10px;
vertical-align: text-top;
}
.fsb-support-note{
font-size: small;
}
.fsb-d-none{
display: none !important;
}
/* Styles based on the work of the getbootstrap.com team and contributors. */
.input-group {
box-sizing: border-box;
position: relative;
display: flex;
flex-wrap: wrap;
align-items: stretch;
width: 100%;
margin-bottom: 1rem !important;
}
.input-group-text {
box-sizing: border-box;
display: flex;
align-items: center;
padding: 0.375rem 0.75rem;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
text-align: center;
white-space: nowrap;
background-color: var(--bs-tertiary-bg);
border: 1px solid silver;
border-radius: 8px;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
input {
box-sizing: border-box;
margin: 0;
font-family: inherit;
scroll-margin-top: 80px;
scroll-margin-bottom: 100px;
display: block;
padding: 0.375rem 0.75rem;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
appearance: none;
background-clip: padding-box;
border: 1px solid silver;
border-left: none;
position: relative;
flex: 1 1 auto;
width: 1%;
min-width: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
margin-left: calc(var(--bs-border-width) * -1);
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
button {
box-sizing: border-box;
margin: 0;
display: inline-block;
padding: 6px 12px;
text-align: center;
text-decoration: none;
vertical-align: middle;
border: 1px solid silver;
border-radius: 8px;
background-color: var(--bs-btn-bg);
cursor: pointer;
position: relative;
z-index: 2;
margin-left: -1;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}

1
fediverse-share-button/styles.min.css vendored Normal file
View file

@ -0,0 +1 @@
.fsb-prompt{max-width:500px;margin-top:52px}.fsb-prompt label{display:block;margin-bottom:12px}.fsb-icon{max-width:14px;margin-right:10px;vertical-align:text-top}.fsb-support-note{font-size:small}.fsb-d-none{display:none!important}.input-group{box-sizing:border-box;position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%;margin-bottom:1rem!important}.input-group-text{box-sizing:border-box;display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:1px solid silver;border-radius:8px;border-top-right-radius:0;border-bottom-right-radius:0}input{box-sizing:border-box;margin:0;font-family:inherit;scroll-margin-top:80px;scroll-margin-bottom:100px;display:block;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;appearance:none;background-clip:padding-box;border:1px solid silver;border-left:none;position:relative;flex:1 1 auto;width:1%;min-width:0;border-top-right-radius:0;border-bottom-right-radius:0;margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}button{box-sizing:border-box;margin:0;display:inline-block;padding:6px 12px;text-align:center;text-decoration:none;vertical-align:middle;border:1px solid silver;border-radius:8px;background-color:var(--bs-btn-bg);cursor:pointer;position:relative;z-index:2;margin-left:-1;border-top-left-radius:0;border-bottom-left-radius:0}

BIN
images/fsb-1200x800.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
images/fsb-640x480.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

98
index.html Normal file
View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
<title>The Conquest of Bread by Petr Alekseevich Kropotkin</title>
<meta name="description"
content="One of the current objections to Communism, and Socialism altogether, is that the idea is so old, and yet it has
never been realized.">
<link rel="stylesheet"
href="./fediverse-share-button/styles.min.css">
<style>
body {
padding: 20px 24px;
font-family: sans-serif;
line-height: 1.2rem
}
header {
margin-bottom: 32px;
}
.note {
background-color: #efefef;
padding: 14px;
border-radius: 10px;
margin-bottom: 32px;
font-weight: bold;
}
</style>
</head>
<body>
<div class="note">This is a demo of the <a href="#">Fediverse Share Button</a> project. Try it out at the bottom of
this page.</div>
<header>
<h1>The Conquest of Bread</h1>
<p>by <a href="https://www.gutenberg.org/ebooks/23428">Petr Alekseevich Kropotkin</a></p>
</header>
<article style="max-width: 900px;">
<p>One of the current objections to Communism, and Socialism altogether, is that the idea is so old, and yet it has
never been realized. Schemes of ideal States haunted the thinkers of Ancient Greece; later on, the early
Christians joined in communist groups; centuries later, large communist brotherhoods came into existence during
the Reform movement. Then, the same ideals were revived during the great English and French Revolutions; and
finally, quite lately, in 1848, a revolution, inspired to a great extent with Socialist ideals, took place in
France. "And yet, you see," we are told, "how far away is still the realization of your schemes. Don't you think
that there is some fundamental error in your understanding of human nature and its needs?"</p>
<p>At first sight this objection seems very serious. However, the moment we consider human history more attentively,
it loses its strength. We see, first, that hundreds of millions of men have succeeded in maintaining amongst
themselves, in their village communities, for many hundreds of years, one of the main elements of Socialism—the
common ownership of the chief instrument of production, the land, and the apportionment of the same according to
the labour capacities of the different families; and we learn that if the communal possession of the land has been
destroyed in Western Europe, it was not from within, but from without, by the governments which created a land
monopoly in favour of the nobility and the middle classes. We learn, moreover, that the medieval cities succeeded
in maintaining in their midst, for several centuries in succession, a certain socialized organization of
production and trade; that these centuries were periods of a rapid intellectual, industrial, and artistic
progress; while the decay of these communal institutions came mainly from the incapacity of men of combining the
village with the city, the peasant with the citizen, so as jointly to oppose the growth of the military states,
which destroyed the free cities.</p>
<p>The history of mankind, thus understood, does not offer, then, an argument against Communism. It appears, on the
contrary, as a succession of endeavours to realize some sort of communist organization, endeavours which were
crowned here and there with a partial success of a certain duration; and all we are authorized to conclude is,
that mankind has not yet found the proper form for combining, on communistic principles, agriculture with a
suddenly developed industry and a rapidly growing international trade. The latter appears especially as a
disturbing element, since it is no longer individuals only, or cities, that enrich themselves by distant commerce
and export; but whole nations grow rich at the cost of those nations which lag behind in their industrial
development.</p>
</article>
<form class="fsb-prompt">
<label>Share with the fediverse</label>
<div class="input-group mb-3">
<span class="input-group-text">https://</span>
<input required
type="text"
name="fediverse-domain"
placeholder="mastodon.social"
class="fsb-domain form-control"
aria-label="Amount (to the nearest dollar)">
<button class="fsb-btn btn btn-outline-secondary"
type="submit"
id="button-addon2"><img src="./fediverse-share-button/icons/mastodon.svg"
class="fsb-icon"></span>Share</button>
</div>
<p class="fsb-support-note fsb-d-none">This server does not support sharing. Please visit <a
class="fsb-support-note-link"
target="_blank"
href=""></a>.</p>
</form>
<script class="fsb-script" src="./fediverse-share-button/script.min.js"
defer>
</script>
</body>
</html>