diff --git a/.gitignore b/.gitignore index 998ca1c..ebea82b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *.tar.gz Caddyfile Caddyfile.* -!Caddyfile.template \ No newline at end of file +!Caddyfile.template +!Caddyfile.base diff --git a/Caddyfile.base b/Caddyfile.base new file mode 100644 index 0000000..ff75e18 --- /dev/null +++ b/Caddyfile.base @@ -0,0 +1,4 @@ +localhost { + root ./static + tls off +} diff --git a/bash.sh b/bash.sh index 524bffa..b2b5c39 100755 --- a/bash.sh +++ b/bash.sh @@ -40,6 +40,7 @@ inotifywait -m ./ -e create -e moved_to | fi; cont=plume-pr-$id + docker container rm $cont || true docker run -td --name $cont --rm -p 127.0.0.1:$port:7878 --mount type=bind,src=$(pwd),dst=/app plumeorg/plume-buildenv:v0.0.5 docker exec -w /app $cont ls -al docker exec -w /app $cont /app/bin/diesel migration run @@ -50,8 +51,14 @@ inotifywait -m ./ -e create -e moved_to | popd - sed -e "s;%BASE_URL%;$domain;g" -e "s;%PORT%;$port;g" Caddyfile.template | tee Caddyfile.$id - cat Caddyfile.$id Caddyfile | tee Caddyfile + #get comma separated list of running containers + currently_running=$(docker container ls | grep -Eo 'plume-pr-[0-9]+' | cut -c10- | tr '\n' ',') + + #remove trailing ',' and convert to json + echo '['"${currently_running::-1}"']' > static/up.json + + sed -e "s;%BASE_URL%;$domain;g" -e "s;%PORT%;$port;g" Caddyfile.template > $id.caddy + cat Caddyfile.base *.caddy > Caddyfile kill $caddy_pid caddy & caddy_pid=$! diff --git a/static/feather.css b/static/feather.css new file mode 100644 index 0000000..e6339ce --- /dev/null +++ b/static/feather.css @@ -0,0 +1,251 @@ +.feather { + width: 24px; + height: 24px; + stroke: currentColor; + stroke-width: 2; + stroke-linecap: round; + stroke-linejoin: round; + fill: none; +} + +.icon:before { + font-family: "Feather"; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-alert-octagon:before { content: "\e81b"; } +.icon-alert-circle:before { content: "\e81c"; } +.icon-activity:before { content: "\e81d"; } +.icon-alert-triangle:before { content: "\e81e"; } +.icon-align-center:before { content: "\e81f"; } +.icon-airplay:before { content: "\e820"; } +.icon-align-justify:before { content: "\e821"; } +.icon-align-left:before { content: "\e822"; } +.icon-align-right:before { content: "\e823"; } +.icon-arrow-down-left:before { content: "\e824"; } +.icon-arrow-down-right:before { content: "\e825"; } +.icon-anchor:before { content: "\e826"; } +.icon-aperture:before { content: "\e827"; } +.icon-arrow-left:before { content: "\e828"; } +.icon-arrow-right:before { content: "\e829"; } +.icon-arrow-down:before { content: "\e82a"; } +.icon-arrow-up-left:before { content: "\e82b"; } +.icon-arrow-up-right:before { content: "\e82c"; } +.icon-arrow-up:before { content: "\e82d"; } +.icon-award:before { content: "\e82e"; } +.icon-bar-chart:before { content: "\e82f"; } +.icon-at-sign:before { content: "\e830"; } +.icon-bar-chart-:before { content: "\e831"; } +.icon-battery-charging:before { content: "\e832"; } +.icon-bell-off:before { content: "\e833"; } +.icon-battery:before { content: "\e834"; } +.icon-bluetooth:before { content: "\e835"; } +.icon-bell:before { content: "\e836"; } +.icon-book:before { content: "\e837"; } +.icon-briefcase:before { content: "\e838"; } +.icon-camera-off:before { content: "\e839"; } +.icon-calendar:before { content: "\e83a"; } +.icon-bookmark:before { content: "\e83b"; } +.icon-box:before { content: "\e83c"; } +.icon-camera:before { content: "\e83d"; } +.icon-check-circle:before { content: "\e83e"; } +.icon-check:before { content: "\e83f"; } +.icon-check-square:before { content: "\e840"; } +.icon-cast:before { content: "\e841"; } +.icon-chevron-down:before { content: "\e842"; } +.icon-chevron-left:before { content: "\e843"; } +.icon-chevron-right:before { content: "\e844"; } +.icon-chevron-up:before { content: "\e845"; } +.icon-chevrons-down:before { content: "\e846"; } +.icon-chevrons-right:before { content: "\e847"; } +.icon-chevrons-up:before { content: "\e848"; } +.icon-chevrons-left:before { content: "\e849"; } +.icon-circle:before { content: "\e84a"; } +.icon-clipboard:before { content: "\e84b"; } +.icon-chrome:before { content: "\e84c"; } +.icon-clock:before { content: "\e84d"; } +.icon-cloud-lightning:before { content: "\e84e"; } +.icon-cloud-drizzle:before { content: "\e84f"; } +.icon-cloud-rain:before { content: "\e850"; } +.icon-cloud-off:before { content: "\e851"; } +.icon-codepen:before { content: "\e852"; } +.icon-cloud-snow:before { content: "\e853"; } +.icon-compass:before { content: "\e854"; } +.icon-copy:before { content: "\e855"; } +.icon-corner-down-right:before { content: "\e856"; } +.icon-corner-down-left:before { content: "\e857"; } +.icon-corner-left-down:before { content: "\e858"; } +.icon-corner-left-up:before { content: "\e859"; } +.icon-corner-up-left:before { content: "\e85a"; } +.icon-corner-up-right:before { content: "\e85b"; } +.icon-corner-right-down:before { content: "\e85c"; } +.icon-corner-right-up:before { content: "\e85d"; } +.icon-cpu:before { content: "\e85e"; } +.icon-credit-card:before { content: "\e85f"; } +.icon-crosshair:before { content: "\e860"; } +.icon-disc:before { content: "\e861"; } +.icon-delete:before { content: "\e862"; } +.icon-download-cloud:before { content: "\e863"; } +.icon-download:before { content: "\e864"; } +.icon-droplet:before { content: "\e865"; } +.icon-edit-:before { content: "\e866"; } +.icon-edit:before { content: "\e867"; } +.icon-edit-1:before { content: "\e868"; } +.icon-external-link:before { content: "\e869"; } +.icon-eye:before { content: "\e86a"; } +.icon-feather:before { content: "\e86b"; } +.icon-facebook:before { content: "\e86c"; } +.icon-file-minus:before { content: "\e86d"; } +.icon-eye-off:before { content: "\e86e"; } +.icon-fast-forward:before { content: "\e86f"; } +.icon-file-text:before { content: "\e870"; } +.icon-film:before { content: "\e871"; } +.icon-file:before { content: "\e872"; } +.icon-file-plus:before { content: "\e873"; } +.icon-folder:before { content: "\e874"; } +.icon-filter:before { content: "\e875"; } +.icon-flag:before { content: "\e876"; } +.icon-globe:before { content: "\e877"; } +.icon-grid:before { content: "\e878"; } +.icon-heart:before { content: "\e879"; } +.icon-home:before { content: "\e87a"; } +.icon-github:before { content: "\e87b"; } +.icon-image:before { content: "\e87c"; } +.icon-inbox:before { content: "\e87d"; } +.icon-layers:before { content: "\e87e"; } +.icon-info:before { content: "\e87f"; } +.icon-instagram:before { content: "\e880"; } +.icon-layout:before { content: "\e881"; } +.icon-link-:before { content: "\e882"; } +.icon-life-buoy:before { content: "\e883"; } +.icon-link:before { content: "\e884"; } +.icon-log-in:before { content: "\e885"; } +.icon-list:before { content: "\e886"; } +.icon-lock:before { content: "\e887"; } +.icon-log-out:before { content: "\e888"; } +.icon-loader:before { content: "\e889"; } +.icon-mail:before { content: "\e88a"; } +.icon-maximize-:before { content: "\e88b"; } +.icon-map:before { content: "\e88c"; } +.icon-maximize:before { content: "\e88d"; } +.icon-map-pin:before { content: "\e88e"; } +.icon-menu:before { content: "\e88f"; } +.icon-message-circle:before { content: "\e890"; } +.icon-message-square:before { content: "\e891"; } +.icon-minimize-:before { content: "\e892"; } +.icon-mic-off:before { content: "\e893"; } +.icon-minus-circle:before { content: "\e894"; } +.icon-mic:before { content: "\e895"; } +.icon-minus-square:before { content: "\e896"; } +.icon-minus:before { content: "\e897"; } +.icon-moon:before { content: "\e898"; } +.icon-monitor:before { content: "\e899"; } +.icon-more-vertical:before { content: "\e89a"; } +.icon-more-horizontal:before { content: "\e89b"; } +.icon-move:before { content: "\e89c"; } +.icon-music:before { content: "\e89d"; } +.icon-navigation-:before { content: "\e89e"; } +.icon-navigation:before { content: "\e89f"; } +.icon-octagon:before { content: "\e8a0"; } +.icon-package:before { content: "\e8a1"; } +.icon-pause-circle:before { content: "\e8a2"; } +.icon-pause:before { content: "\e8a3"; } +.icon-percent:before { content: "\e8a4"; } +.icon-phone-call:before { content: "\e8a5"; } +.icon-phone-forwarded:before { content: "\e8a6"; } +.icon-phone-missed:before { content: "\e8a7"; } +.icon-phone-off:before { content: "\e8a8"; } +.icon-phone-incoming:before { content: "\e8a9"; } +.icon-phone:before { content: "\e8aa"; } +.icon-phone-outgoing:before { content: "\e8ab"; } +.icon-pie-chart:before { content: "\e8ac"; } +.icon-play-circle:before { content: "\e8ad"; } +.icon-play:before { content: "\e8ae"; } +.icon-plus-square:before { content: "\e8af"; } +.icon-plus-circle:before { content: "\e8b0"; } +.icon-plus:before { content: "\e8b1"; } +.icon-pocket:before { content: "\e8b2"; } +.icon-printer:before { content: "\e8b3"; } +.icon-power:before { content: "\e8b4"; } +.icon-radio:before { content: "\e8b5"; } +.icon-repeat:before { content: "\e8b6"; } +.icon-refresh-ccw:before { content: "\e8b7"; } +.icon-rewind:before { content: "\e8b8"; } +.icon-rotate-ccw:before { content: "\e8b9"; } +.icon-refresh-cw:before { content: "\e8ba"; } +.icon-rotate-cw:before { content: "\e8bb"; } +.icon-save:before { content: "\e8bc"; } +.icon-search:before { content: "\e8bd"; } +.icon-server:before { content: "\e8be"; } +.icon-scissors:before { content: "\e8bf"; } +.icon-share-:before { content: "\e8c0"; } +.icon-share:before { content: "\e8c1"; } +.icon-shield:before { content: "\e8c2"; } +.icon-settings:before { content: "\e8c3"; } +.icon-skip-back:before { content: "\e8c4"; } +.icon-shuffle:before { content: "\e8c5"; } +.icon-sidebar:before { content: "\e8c6"; } +.icon-skip-forward:before { content: "\e8c7"; } +.icon-slack:before { content: "\e8c8"; } +.icon-slash:before { content: "\e8c9"; } +.icon-smartphone:before { content: "\e8ca"; } +.icon-square:before { content: "\e8cb"; } +.icon-speaker:before { content: "\e8cc"; } +.icon-star:before { content: "\e8cd"; } +.icon-stop-circle:before { content: "\e8ce"; } +.icon-sun:before { content: "\e8cf"; } +.icon-sunrise:before { content: "\e8d0"; } +.icon-tablet:before { content: "\e8d1"; } +.icon-tag:before { content: "\e8d2"; } +.icon-sunset:before { content: "\e8d3"; } +.icon-target:before { content: "\e8d4"; } +.icon-thermometer:before { content: "\e8d5"; } +.icon-thumbs-up:before { content: "\e8d6"; } +.icon-thumbs-down:before { content: "\e8d7"; } +.icon-toggle-left:before { content: "\e8d8"; } +.icon-toggle-right:before { content: "\e8d9"; } +.icon-trash-:before { content: "\e8da"; } +.icon-trash:before { content: "\e8db"; } +.icon-trending-up:before { content: "\e8dc"; } +.icon-trending-down:before { content: "\e8dd"; } +.icon-triangle:before { content: "\e8de"; } +.icon-type:before { content: "\e8df"; } +.icon-twitter:before { content: "\e8e0"; } +.icon-upload:before { content: "\e8e1"; } +.icon-umbrella:before { content: "\e8e2"; } +.icon-upload-cloud:before { content: "\e8e3"; } +.icon-unlock:before { content: "\e8e4"; } +.icon-user-check:before { content: "\e8e5"; } +.icon-user-minus:before { content: "\e8e6"; } +.icon-user-plus:before { content: "\e8e7"; } +.icon-user-x:before { content: "\e8e8"; } +.icon-user:before { content: "\e8e9"; } +.icon-users:before { content: "\e8ea"; } +.icon-video-off:before { content: "\e8eb"; } +.icon-video:before { content: "\e8ec"; } +.icon-voicemail:before { content: "\e8ed"; } +.icon-volume-x:before { content: "\e8ee"; } +.icon-volume-:before { content: "\e8ef"; } +.icon-volume-1:before { content: "\e8f0"; } +.icon-volume:before { content: "\e8f1"; } +.icon-watch:before { content: "\e8f2"; } +.icon-wifi:before { content: "\e8f3"; } +.icon-x-square:before { content: "\e8f4"; } +.icon-wind:before { content: "\e8f5"; } +.icon-x:before { content: "\e8f6"; } +.icon-x-circle:before { content: "\e8f7"; } +.icon-zap:before { content: "\e8f8"; } +.icon-zoom-in:before { content: "\e8f9"; } +.icon-zoom-out:before { content: "\e8fa"; } +.icon-command:before { content: "\e8fb"; } +.icon-cloud:before { content: "\e8fc"; } +.icon-hash:before { content: "\e8fd"; } +.icon-headphones:before { content: "\e8fe"; } diff --git a/static/index.html b/static/index.html new file mode 100644 index 0000000..a6abb70 --- /dev/null +++ b/static/index.html @@ -0,0 +1,39 @@ + + + + + Plume-ci ⋅ list of running pull requests + + + + + + + +
+ +
+ +
+
+
+

List of running pull requests

+ +
+ + + + + diff --git a/static/main.css b/static/main.css new file mode 100644 index 0000000..dd55abf --- /dev/null +++ b/static/main.css @@ -0,0 +1 @@ +html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}html,body{margin:0;padding:0;background:#F4F4F4;color:#242424;font-family:"Route159",serif}html ::selection,body ::selection{background:#c2bbee}html ::-moz-selection,body ::-moz-selection{background:#c2bbee}a,a:visited{color:#7765E3;text-decoration:none}a::selection{color:#F4F4F4}a::-moz-selection{color:#F4F4F4}small{margin-left:1em;color:rgba(36,36,36,0.4);font-size:.75em;word-wrap:break-word;word-break:break-all}.center{text-align:center;font-weight:bold;opacity:.6;padding:5em}.spaced{margin:4rem 0}.cards.spaced{margin:1rem 0 5rem}.banner{background:#E3E3E3;padding-top:2em;padding-bottom:1em;margin:3em 0px}.hidden{display:none}body>main>*,.h-feed>*{margin:0 20%}body>main>.h-entry,.h-feed{margin:0}main h1,main h2,main h3,main h4,main h5,main h6{font-family:"Route159",serif;line-height:1.15;font-weight:300}main h1.article,main h2.article,main h3.article,main h4.article,main h5.article,main h6.article{max-width:40rem}main h1{font-size:2.5em;font-weight:300;margin-top:1em}main h1.article{margin:1em auto .5em;font-family:"Playfair Display",serif;font-size:2.5em;font-weight:normal}main h2{font-size:1.75em;font-weight:300}main h2.article{margin:auto;font-size:1.25em;margin-bottom:.5em}main h3,main h4,main h5,main h6{font-size:1.5em;font-weight:300}main h3.article,main h4.article,main h5.article,main h6.article{margin:auto;font-size:1.1em;margin-bottom:.5em}main .cover{padding:0px;margin:0px;width:auto;min-height:50vh;background-position:center;background-size:cover;overflow:hidden}p.error{color:#E92F2F;font-weight:bold;max-width:40rem;margin:1em auto}.user h1{display:flex;flex-direction:row;align-items:center;margin:0px}.user .avatar.medium{margin-left:0px}.badge{margin-right:1em;padding:.35em 1em;background:#F4F4F4;color:#7765E3;border:1px solid #7765E3;border-radius:1em;font-size:1rem}.user-summary{margin:2em 0px}.cards{display:flex;flex-direction:row;flex-wrap:wrap;padding:0 5%}.card{flex:1;display:flex;flex-direction:column;min-width:20em;min-height:20em;margin:1em;box-sizing:border-box;background:#E3E3E3;text-overflow:ellipsis}.card>*{margin:20px}.card .cover{min-height:10em;background-position:center;background-size:cover;margin:0px}.card h3{margin:.75em 20px;font-family:"Playfair Display",serif;font-size:1.75em;font-weight:normal}.card h3 a{transition:color .1s ease-in;color:#242424}.card h3 a:hover{color:#7765E3}.card main{flex:1;font-family:"Lora",serif;font-size:1em;line-height:1.25;text-align:left;overflow:hidden}.list .card{background:0;margin:2em 0;padding:0;min-height:0}.presentation>h2,.presentation>a{text-align:center}.presentation>a{font-size:1.2em;margin:1em}.stats{display:flex;justify-content:space-around;margin:2em}.stats>div{display:flex;flex-direction:column;justify-content:center;align-items:center}.stats p{text-align:center}.stats em{font-weight:bold;display:block;margin:1em 0}.pagination{display:flex;justify-content:space-evenly}.pagination>*{padding:2em}.flex{display:flex;flex-direction:row;align-items:center}.flex.vertical{flex-direction:column;justify-content:space-around;align-items:flex-start}.flex.vertical small{margin:initial}.flex .grow{flex:1}.left-icon{align-self:center;padding:1em;background:#ECECEC;border-radius:50px;margin:1em;margin-right:2em}body>footer{display:flex;align-content:center;justify-content:space-between;background:#ECECEC;padding:0 20%;margin-top:5em}body>footer *{margin:5em 0}figure{text-align:center;margin:2em;max-width:100%;width:auto;height:auto}figure>*{max-width:100%}figure figcaption{padding:1em}figure audio,figure video{width:100%}.preview{display:block;max-width:100px;max-height:100px;width:auto;height:auto;margin-right:20px}.media-preview{min-height:8em}.media-preview:not(.image){background-color:#7765E3;background-repeat:no-repeat;background-position:center;background-size:4em}.media-preview.unknown{background-image:url('/static/images/unknown-file.svg');display:block}.media-preview.audio{background-image:url('/static/images/audio-file.svg')}.media-preview.video{background-image:url('/static/images/video-file.svg')}.avatar{background-position:center;background-size:cover;border-radius:100%}.avatar.small{width:50px;height:50px}.avatar.medium{width:100px;height:100px;margin:20px}.avatar.padded{margin-right:2rem}.tabs{border-bottom:1px solid #ECECEC;padding:0px;margin:auto 20% 2em;overflow:auto;display:flex}.tabs a{display:inline-block;color:#242424;padding:1em}.tabs a.selected{color:#7765E3;border-bottom:1px solid #7765E3}header{background:#ECECEC}header #content{display:flex;align-content:center;justify-content:space-between}header nav#menu{position:relative;display:none;transform:skewX(-15deg);left:-1em;padding:1em 1em 1em 2em;background:#7765E3;align-self:flex-start}header nav#menu a{transform:skewX(15deg);display:flex;flex-direction:column;align-items:center;justify-content:center;width:1.4em;height:1.4em;margin:0;padding:0;color:#ECECEC;font-size:1.33em}header nav{display:flex;flex-direction:row;align-items:center}header nav hr{height:100%;width:.2em;background:#7765E3;border:none;transform:skewX(-15deg)}header nav a{display:flex;align-items:center;position:relative;align-self:stretch;margin:0;padding:0 2em;font-size:1em}header nav a i{font-size:1.2em}header nav a.title{margin:0;text-align:center;padding:.5em 1em;font-size:1.75em}header nav a.title img{height:1.75em;width:1.75em}header nav a.title p{margin:0;padding-left:.5em}.messages>*{padding:1em 20%}.messages p.error{color:#E92F2F;background:#fde7e7;margin:0;max-width:initial}@media screen and (min-width: 600px){header nav a i{transition:all .2s ease;margin:0}header nav a .mobile-label{transition:all .2s ease;display:block;position:absolute;left:50%;transform:translate(-50%, 0);opacity:0;font-size:.9em;white-space:nowrap}header nav a img+.mobile-label{display:none}header nav a:hover i{margin-bottom:.75em}header nav a:hover .mobile-label{opacity:1;transform:translate(-50%, 80%)}}main .article-info{max-width:40rem;margin:0 auto 3em;font-size:.95em;font-weight:400}main .article-info .author,main .article-info .author a{font-weight:600}main article{max-width:40rem;margin:2.5em auto;font-family:"Lora",serif;font-size:1.2em;line-height:1.7}main article a:hover{text-decoration:underline}main article img{display:block;margin:3em auto;max-width:100%}main article pre{padding:1em;background:#ECECEC;overflow:auto;border-radius:5px}main .article-meta,main .article-meta button{padding:0;font-size:1.1em;margin-top:10%}main .article-meta>*{margin:0 20%}main .article-meta>p{margin:2em 20%;font-size:.9em}main .article-meta .tags{list-style:none;display:inline-block;padding:0px;margin-bottom:2em}main .article-meta .tags li{display:inline-block;background:#ECECEC;padding:0px;margin:0px 10px 10px 0px;border-radius:3px;transition:all .2s ease-in}main .article-meta .tags li a{display:inline-block;padding:10px 20px;color:#242424}main .article-meta .tags li:hover{background:#d8d8d8}main .article-meta .actions{display:flex;flex-direction:row;justify-content:space-around}main .article-meta .likes,main .article-meta .reshares{display:flex;flex-direction:column;align-items:center;padding:.5em 0}main .article-meta .likes p,main .article-meta .reshares p{font-size:1.5em;display:inline-block;margin:0}main .article-meta .likes .action,main .article-meta .reshares .action{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0;padding:0;background:none;color:#242424;border:none;font-size:1.1em}main .article-meta .likes .action svg.feather,main .article-meta .reshares .action svg.feather{transition:background .1s ease-in;display:flex;align-items:center;justify-content:center;margin:.5em 0;width:2.5em;height:2.5em;border-radius:50%}main .article-meta .likes .action.reshared svg.feather,main .article-meta .likes .action.liked svg.feather,main .article-meta .reshares .action.reshared svg.feather,main .article-meta .reshares .action.liked svg.feather{color:#F4F4F4;font-weight:900}main .article-meta .likes p,main .article-meta .likes .action:hover{color:#E92F2F}main .article-meta .likes .action svg.feather{padding:.7em;box-sizing:border-box;color:#E92F2F;fill:none;border:solid #E92F2F thin}main .article-meta .likes .action:hover svg.feather{background:rgba(233,47,47,0.15)}main .article-meta .likes .action.liked svg.feather{background:#E92F2F;fill:currentColor}main .article-meta .likes .action.liked:hover svg.feather{background:rgba(233,47,47,0.25) color: #E92F2F}main .article-meta .reshares p,main .article-meta .reshares .action:hover{color:#7765E3}main .article-meta .reshares .action svg.feather{padding:.7em;box-sizing:border-box;color:#7765E3;border:solid #7765E3 thin;font-weight:600}main .article-meta .reshares .action:hover svg.feather{background:rgba(119,101,227,0.15)}main .article-meta .reshares .action.reshared svg.feather{background:#7765E3}main .article-meta .reshares .action.reshared:hover svg.feather{background:rgba(119,101,227,0.25) color: #7765E3}main .article-meta .comments{margin:0}main .article-meta .comments>*{margin-left:20%;margin-right:20%}main .article-meta .comments h2{color:#7765E3;font-size:1.5em;font-weight:600}main .article-meta .comments summary{cursor:pointer}main .article-meta .comments>form input[type="submit"]{font-size:1em}main .article-meta .comments a.button,main .article-meta .comments form.inline,main .article-meta .comments form.inline input{display:inline-block;padding:0;background:none;color:#242424;border:none;margin-right:2em;font-family:"Route159",serif}main .article-meta .comments a.button::before,main .article-meta .comments form.inline::before,main .article-meta .comments form.inline input::before{color:#7765E3;padding-right:.5em}main .article-meta .comments a.button:hover,main .article-meta .comments form.inline:hover,main .article-meta .comments form.inline input:hover{color:#7765E3}main .article-meta .comments .list{display:grid;margin:0 0 -5em;padding:0 20%;background:#ECECEC}main .article-meta .comments .comment{padding:2em;font-size:1em;border:none}main .article-meta .comments .comment .author{display:flex;flex-direction:row;align-items:center;align-content:center}main .article-meta .comments .comment .author *{transition:all .1s ease-in}main .article-meta .comments .comment .author .display-name{color:#242424}main .article-meta .comments .comment .author:hover .display-name{color:#7765E3}main .article-meta .comments .comment .author:hover small{opacity:1}main .article-meta .comments .comment .text{padding:1.25em 0;font-family:"Lora",serif;font-size:1.1em;line-height:1.4;text-align:left}#plume-editor header{display:flex;flex-direction:row-reverse;background:transparent;align-items:center;justify-content:space-between}#plume-editor header button{flex:0 0 10em;font-size:1.25em;margin:.5em 0em .5em 1em}#plume-editor>*{min-height:1em;outline:none;margin-bottom:.5em}#plume-editor .placeholder{color:rgba(36,36,36,0.4)}#plume-editor article{max-width:none;min-height:80vh}.popup{position:fixed;top:15vh;bottom:20vh;left:20vw;right:20vw;background:#ECECEC;border:1px solid #7765E3;z-index:2;padding:2em;overflow-y:auto}.popup:not(.show),.popup-bg:not(.show){display:none}.popup-bg{background:rgba(0,0,0,0.1);position:fixed;top:0px;left:0px;right:0px;bottom:0px}.cw-container{position:relative;display:inline-block}.cw-text{display:none}input[type="checkbox"].cw-checkbox{display:none}input:checked ~ .cw-container:before{content:" ";position:absolute;height:100%;width:100%;background:#000}input:checked ~ .cw-container>.cw-text{display:inline;position:absolute;color:white;width:100%;text-align:center;top:50%;transform:translateY(-50%)}label{display:block;margin:2em auto .5em;font-size:1.2em}input,textarea,select{transition:all .1s ease-in;display:block;width:100%;margin:auto;padding:1em;box-sizing:border-box;background:#FFFFFF;color:#242424;border:none;border:solid #ECECEC thin;font-size:1.2em;font-weight:400}input:focus,textarea:focus,select:focus{border-color:#7765E3}form input[type="submit"]{margin:2em auto}textarea{resize:vertical;font-family:"Lora",serif;font-size:1.1em;line-height:1.5}input[type="checkbox"]{display:inline;margin:initial;min-width:initial;width:initial}form.inline{display:inline;margin:0px;padding:0px;width:auto}form.inline input[type="submit"]{display:inline-block;color:#7765E3;cursor:pointer;font-size:1em;width:auto;-webkit-appearance:none}form.inline input[type="submit"]:not(.button){margin:0;padding:0;border:none;background:transparent;color:#7765E3}.button,input[type="submit"],button{transition:all .1s ease-in;display:inline-block;-webkit-appearance:none;border-radius:.5em;margin:.5em auto;padding:.75em 1em;background:transparent;color:#7765E3;border:1px solid #7765E3;cursor:pointer}.button:hover,input[type="submit"]:hover,button:hover{background:rgba(119,101,227,0.4);color:white}.button.destructive,input[type="submit"].destructive,button.destructive{color:#E92F2F;border-color:#E92F2F}.button.destructive:hover,input[type="submit"].destructive:hover,button.destructive:hover{background:rgba(233,47,47,0.4);color:#F4F4F4}input[type="submit"]{display:block}form.new-post{max-width:60em;-webkit-appearance:none}form.new-post .title{margin:0 auto;padding:.75em 0;background:none;border:none;font-family:"Playfair Display",serif;font-size:2em;text-align:left}form.new-post textarea{min-height:20em;overflow-y:hidden;resize:none}form.new-post input[type="submit"]{background:#ECECEC;color:#242424;border:none;-webkit-appearance:none;font-family:"Playfair Display",serif;font-size:1.5em}form.new-post input[type="submit"]:hover{background:#ECECEC}.button+.button{margin-left:1em}.split{display:flex;justify-content:space-between}.split>*{flex-grow:1;max-width:40%}header.center{display:flex;flex-direction:column;align-items:center;background:transparent;opacity:1;font-weight:normal;text-align:left}header.center>*{margin-left:0;margin-right:0}@media screen and (max-width: 600px){@keyframes menuOpening{from{transform:scaleX(0);transform-origin:left;opacity:0}to{transform:scaleX(1);transform-origin:left;opacity:1}}header{flex-direction:column}header nav#menu{display:inline-flex}header #content{display:none;text-align:center}header:focus-within #content,#content.show{position:fixed;display:flex;flex-direction:column;justify-content:flex-start;top:0;left:0;width:100%;height:100%;box-sizing:border-box;animation:.2s menuOpening}header:focus-within #content::before,#content.show::before{content:"";position:absolute;transform:skewX(-10deg);top:0;left:-20%;width:100%;height:100%;z-index:-10;background:#7765E3}header:focus-within #content>nav,#content.show>nav{flex-direction:column;align-items:flex-start}header:focus-within #content>nav a,#content.show>nav a{display:flex;flex-direction:row;align-items:center;margin:0;padding:1rem 1.5rem;color:#F4F4F4;font-size:1.4em;font-weight:300}header:focus-within #content>nav a.title,#content.show>nav a.title{font-size:1.8em}header:focus-within #content>nav a>*:first-child,#content.show>nav a>*:first-child{width:3rem}header:focus-within #content>nav a>img:first-child,#content.show>nav a>img:first-child{height:3rem}header:focus-within #content>nav a>*:last-child,#content.show>nav a>*:last-child{margin-left:1rem}header:focus-within #content>nav a>nav hr,#content.show>nav a>nav hr{display:block;margin:0;width:100%;border:solid #F4F4F4 .1rem}header:focus-within #content>nav a .mobile-label,#content.show>nav a .mobile-label{display:initial}body>main>*{padding:0 5%}main .article-meta>*{margin:0 5%}main .article-meta>p{margin:2em 5%;font-size:.9em}main .article-meta .comments>*{margin:auto 5%}main .article-meta .comments .comment{padding:2em 0px}main .article-info,main article,main h1.article,main h2.article{max-width:90vw}.card{min-width:80%;min-height:80%}.tabs{margin:auto 0px 2em}.stats{flex-direction:column}body>footer{flex-direction:column;align-items:center}body>footer *{margin:1em auto}.flex.wrap{flex-direction:column}.cards{margin:1rem 0 5rem}} diff --git a/static/plume-ci.js b/static/plume-ci.js new file mode 100644 index 0000000..134c25d --- /dev/null +++ b/static/plume-ci.js @@ -0,0 +1,44 @@ +fetch("/up.json").then(function(response) { + return response.json().then(function(json) { + for(i = 0; i < json.length; i++) { + id = json[i]; + fetch("https://api.github.com/repos/Plume-org/Plume/pulls/"+id, {mode: 'cors'}).then( + +function(response) { + return response.json().then(function(json) { + link_test = document.createElement("a"); + link_test.href = "https://pr-" + id + ".joinplu.me/"; + link_github = document.createElement("a"); + link_github.href = "https://github.com/Plume-org/Plume/pull/" + id; + link_github.innerText = "(view on Github)"; + if(json.title === undefined) { + link_test.innerText = "#" + id; + } else { + link_test.innerText = "#" + id + " " + json.title; + } + li = document.createElement("li"); + li.appendChild(link_test); + li.append(" ⋅ "); + li.appendChild(link_github); + document.getElementById("list").appendChild(li); + }) +} + + ).catch( +function() { + link_test = document.createElement("a"); + link_test.href = "https://pr-" + id + ".joinplu.me/"; + link_github = document.createElement("a"); + link_github.href = "https://github.com/Plume-org/Plume/pull/" + id; + link_github.innerText = "(view on Github)"; + link_test.innerText = "#" + id; + li = document.createElement("li"); + li.appendChild(link_test); + li.append(" ⋅ "); + li.appendChild(link_github); + document.getElementById("list").appendChild(li); +} + ) + } + }) +}); diff --git a/static/plumeFeather256.png b/static/plumeFeather256.png new file mode 100644 index 0000000..748fbb7 Binary files /dev/null and b/static/plumeFeather256.png differ diff --git a/static/plumeFeatherFilled64.png b/static/plumeFeatherFilled64.png new file mode 100644 index 0000000..917c418 Binary files /dev/null and b/static/plumeFeatherFilled64.png differ diff --git a/static/up.json b/static/up.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/static/up.json @@ -0,0 +1 @@ +[]