mirror of
https://0xacab.org/sutty/sutty
synced 2025-01-18 18:23:38 +00:00
botones con iconos y otros arreglos
This commit is contained in:
parent
ab86019286
commit
a1b2f852e2
9 changed files with 122 additions and 34 deletions
7
Makefile
7
Makefile
|
@ -79,6 +79,13 @@ dirs := $(patsubst %,root/%,data sites deploy public)
|
||||||
$(dirs):
|
$(dirs):
|
||||||
mkdir -p $@
|
mkdir -p $@
|
||||||
|
|
||||||
|
app/assets/fonts/forkawesome-webfont.woff2: fa.txt
|
||||||
|
which glyphhanger || npm i -g glyphhanger
|
||||||
|
grep -v "^#" fa.txt | sed "s/^/U+/" | cut -d " " -f 1 | tr "\n" "," | xargs -rI {} glyphhanger --subset=node_modules/fork-awesome/fonts/forkawesome-webfont.ttf --formats=woff2 --whitelist="{}"
|
||||||
|
mv node_modules/fork-awesome/fonts/forkawesome-webfont-subset.woff2 $@
|
||||||
|
|
||||||
|
fa: app/assets/fonts/forkawesome-webfont.woff2 ## Fork Awesome
|
||||||
|
|
||||||
/etc/hosts: always
|
/etc/hosts: always
|
||||||
@echo "Chequeando si es necesario agregar el dominio local $(SUTTY)"
|
@echo "Chequeando si es necesario agregar el dominio local $(SUTTY)"
|
||||||
@grep -q " $(SUTTY)$$" $@ || echo -e "127.0.0.1 $(SUTTY)\n::1 $(SUTTY)" | sudo tee -a $@
|
@grep -q " $(SUTTY)$$" $@ || echo -e "127.0.0.1 $(SUTTY)\n::1 $(SUTTY)" | sudo tee -a $@
|
||||||
|
|
BIN
app/assets/fonts/forkawesome-webfont.woff2
Normal file
BIN
app/assets/fonts/forkawesome-webfont.woff2
Normal file
Binary file not shown.
|
@ -37,6 +37,7 @@ import "prosemirror-gapcursor/style/gapcursor.css"
|
||||||
import "prosemirror-menu/style/menu.css"
|
import "prosemirror-menu/style/menu.css"
|
||||||
import "prosemirror-view/style/prosemirror.css"
|
import "prosemirror-view/style/prosemirror.css"
|
||||||
import "prosemirror-example-setup/style/style.css"
|
import "prosemirror-example-setup/style/style.css"
|
||||||
|
import "fork-awesome/scss/fork-awesome.scss"
|
||||||
|
|
||||||
// Lista de equivalencias entre Date#getTimezoneOffset de JS y
|
// Lista de equivalencias entre Date#getTimezoneOffset de JS y
|
||||||
// MetadataEvent
|
// MetadataEvent
|
||||||
|
|
|
@ -13,52 +13,107 @@
|
||||||
dir: dir, lang: locale,
|
dir: dir, lang: locale,
|
||||||
**field_options(attribute, metadata), class: 'd-none'
|
**field_options(attribute, metadata), class: 'd-none'
|
||||||
|
|
||||||
|
-#
|
||||||
|
el > se come el salto de línea y hace que los botones no tengan
|
||||||
|
espacio adicional
|
||||||
|
|
||||||
|
TODO: Eliminar todo el espacio en blanco para minificar HTML
|
||||||
.editor-toolbar{ style: 'z-index: 1' }
|
.editor-toolbar{ style: 'z-index: 1' }
|
||||||
.editor-primary-toolbar.scrollbar-black
|
.editor-primary-toolbar.scrollbar-black
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'mark-bold' } } }= t('editor.bold')
|
%button.btn{ type: 'button', title: t('editor.multimedia'), data: { editor_button: 'multimedia' } }>
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'mark-italic' } } }= t('editor.italic')
|
%i.fa.fa-fw.fa-upload>
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'mark-deleted' } } }= t('editor.deleted')
|
%span.sr-only>= t('editor.multimedia')
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'mark-underline' } } }= t('editor.underline')
|
%button.btn{ type: 'button', title: t('editor.bold'), data: { editor_button: 'mark-bold' } }>
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'mark-super' } } }= t('editor.super')
|
%i.fa.fa-fw.fa-bold>
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'mark-sub' } } }= t('editor.sub')
|
%span.sr-only>= t('editor.bold')
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'mark-mark' } } }= t('editor.mark')
|
%button.btn{ type: 'button', title: t('editor.italic'), data: { editor_button: 'mark-italic' } }>
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'mark-link' } } }= t('editor.link')
|
%i.fa.fa-fw.fa-italic>
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'block-h1' } } }= t('editor.h1')
|
%span.sr-only>= t('editor.italic')
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'block-h2' } } }= t('editor.h2')
|
%button.btn{ type: 'button', title: t('editor.mark'), data: { editor_button: 'mark-mark' } }>
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'block-h3' } } }= t('editor.h3')
|
%i.fa.fa-fw.fa-tint>
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'block-h4' } } }= t('editor.h4')
|
%span.sr-only>= t('editor.mark')
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'block-h5' } } }= t('editor.h5')
|
%button.btn{ type: 'button', title: t('editor.link'), data: { editor_button: 'mark-link' } }>
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'block-h6' } } }= t('editor.h6')
|
%i.fa.fa-fw.fa-link>
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'block-unordered_list' } } }= t('editor.ul')
|
%span.sr-only>= t('editor.link')
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'block-ordered_list' } } }= t('editor.ol')
|
%button.btn{ type: 'button', title: t('editor.deleted'), data: { editor_button: 'mark-deleted' } }>
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'parentBlock-left' } } }= t('editor.left')
|
%i.fa.fa-fw.fa-strikethrough>
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'parentBlock-center' } } }= t('editor.center')
|
%span.sr-only>= t('editor.deleted')
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'parentBlock-right' } } }= t('editor.right')
|
%button.btn{ type: 'button', title: t('editor.underline'), data: { editor_button: 'mark-underline' } }>
|
||||||
%button.btn{ type: 'button', data: { editor: { button: 'multimedia' } } }= t('editor.multimedia')
|
%i.fa.fa-fw.fa-underline>
|
||||||
|
%span.sr-only>= t('editor.underline')
|
||||||
|
%button.btn{ type: 'button', title: t('editor.super'), data: { editor_button: 'mark-super' } }>
|
||||||
|
%i.fa.fa-fw.fa-superscript>
|
||||||
|
%span.sr-only>= t('editor.super')
|
||||||
|
%button.btn{ type: 'button', title: t('editor.sub'), data: { editor_button: 'mark-sub' } }>
|
||||||
|
%i.fa.fa-fw.fa-subscript>
|
||||||
|
%span.sr-only>= t('editor.sub')
|
||||||
|
%button.btn.mr-0{ type: 'button', title: t('editor.h1'), data: { editor_button: 'block-h1' } }>
|
||||||
|
%i.fa.fa-fw.fa-heading>
|
||||||
|
1
|
||||||
|
%span.sr-only>= t('editor.h1')
|
||||||
|
%details.d-inline>
|
||||||
|
%summary.d-inline>
|
||||||
|
%span.btn.ml-0{ role: 'button', title: t('editor.more') }>
|
||||||
|
%i.fa.fa-caret-right>
|
||||||
|
%span.sr-only= t('editor.more')
|
||||||
|
.d-inline>
|
||||||
|
%button.btn{ type: 'button', title: t('editor.h2'), data: { editor_button: 'block-h2' } }>
|
||||||
|
%i.fa.fa-fw.fa-heading>
|
||||||
|
2
|
||||||
|
%span.sr-only>= t('editor.h2')
|
||||||
|
%button.btn{ type: 'button', title: t('editor.h3'), data: { editor_button: 'block-h3' } }>
|
||||||
|
%i.fa.fa-fw.fa-heading>
|
||||||
|
3
|
||||||
|
%span.sr-only>= t('editor.h3')
|
||||||
|
%button.btn{ type: 'button', title: t('editor.h4'), data: { editor_button: 'block-h4' } }>
|
||||||
|
%i.fa.fa-fw.fa-heading>
|
||||||
|
4
|
||||||
|
%span.sr-only>= t('editor.h4')
|
||||||
|
%button.btn{ type: 'button', title: t('editor.h5'), data: { editor_button: 'block-h5' } }>
|
||||||
|
%i.fa.fa-fw.fa-heading>
|
||||||
|
5
|
||||||
|
%span.sr-only>= t('editor.h5')
|
||||||
|
%button.btn{ type: 'button', title: t('editor.h6'), data: { editor_button: 'block-h6' } }>
|
||||||
|
%i.fa.fa-fw.fa-heading>
|
||||||
|
6
|
||||||
|
%span.sr-only>= t('editor.h6')
|
||||||
|
%button.btn{ type: 'button', title: t('editor.ul'), data: { editor_button: 'block-unordered_list' } }>
|
||||||
|
%i.fa.fa-fw.fa-list-ul>
|
||||||
|
%span.sr-only>= t('editor.ul')
|
||||||
|
%button.btn{ type: 'button', title: t('editor.ol'), data: { editor_button: 'block-ordered_list' } }>
|
||||||
|
%i.fa.fa-fw.fa-list-ol>
|
||||||
|
%span.sr-only>= t('editor.ol')
|
||||||
|
%button.btn{ type: 'button', title: t('editor.left'), data: { editor_button: 'parentBlock-left' } }>
|
||||||
|
%i.fa.fa-fw.fa-align-left>
|
||||||
|
%span.sr-only>= t('editor.left')
|
||||||
|
%button.btn{ type: 'button', title: t('editor.center'), data: { editor_button: 'parentBlock-center' } }>
|
||||||
|
%i.fa.fa-fw.fa-align-center>
|
||||||
|
%span.sr-only>= t('editor.center')
|
||||||
|
%button.btn{ type: 'button', title: t('editor.right'), data: { editor_button: 'parentBlock-right' } }>
|
||||||
|
%i.fa.fa-fw.fa-align-right>
|
||||||
|
%span.sr-only>= t('editor.right')
|
||||||
|
|
||||||
-#
|
-# HAML cringe
|
||||||
HAML cringe
|
.editor-auxiliary-toolbar.mt-1.scrollbar-black{ data: { editor_auxiliary_toolbar: '' } }
|
||||||
TODO: generar IDs para labels
|
.form-group{ data: { editor_auxiliary: 'mark' } }
|
||||||
.editor-auxiliary-toolbar.mt-1.scrollbar-black{ data: { 'editor_auxiliary_toolbar': '' } }
|
|
||||||
.form-group{ data: { editor: { auxiliary: 'mark' } } }
|
|
||||||
%label{ for: 'mark-color' }= t('editor.color')
|
%label{ for: 'mark-color' }= t('editor.color')
|
||||||
%input.form-control{ type: 'color', name: 'mark-color' }/
|
%input.form-control{ type: 'color', name: 'mark-color' }/
|
||||||
|
|
||||||
%div{ data: { editor: { auxiliary: 'multimedia' } } }
|
%div{ data: { editor_auxiliary: 'multimedia' } }
|
||||||
.form-group
|
.form-group
|
||||||
.custom-file
|
.custom-file
|
||||||
%input.custom-file-input{ type: 'file', name: 'multimedia-file' }/
|
%input.custom-file-input{ type: 'file', id: 'multimedia-file', name: 'multimedia-file' }/
|
||||||
%label.custom-file-label{ for: 'multimedia-file' }= t('editor.multimedia-select')
|
%label.custom-file-label{ for: 'multimedia-file' }= t('editor.multimedia-select')
|
||||||
.form-group
|
.form-group
|
||||||
%label{ for: 'multimedia-alt' }= t('editor.description')
|
%label{ for: 'multimedia-alt' }= t('editor.description')
|
||||||
%input.form-control{ type: 'text', name: 'multimedia-alt' }/
|
%input.form-control{ type: 'text', id: 'multimedia-alt', name: 'multimedia-alt' }/
|
||||||
.form-group
|
.form-group
|
||||||
%button.btn{ type: 'button', name: 'multimedia-file-upload' }= t('editor.multimedia-upload')
|
%button.btn{ type: 'button', id: 'multimedia-file-upload', name: 'multimedia-file-upload' }= t('editor.multimedia-upload')
|
||||||
%button.btn{ type: 'button', name: 'multimedia-remove' }= t('editor.multimedia-remove')
|
%button.btn{ type: 'button', id: 'multimedia-remove', name: 'multimedia-remove' }= t('editor.multimedia-remove')
|
||||||
|
|
||||||
.form-group{ data: { editor: { auxiliary: 'link' } } }
|
.form-group{ data: { editor_auxiliary: 'link' } }
|
||||||
%label{ for: 'link-url' }= t('editor.url')
|
%label{ for: 'link-url' }= t('editor.url')
|
||||||
%input.form-control{ type: 'url', name: 'link-url' }/
|
%input.form-control{ type: 'url', id: 'link-url', name: 'link-url' }/
|
||||||
|
|
||||||
.editor-aviso-word.alert.alert-info
|
.editor-aviso-word.alert.alert-info
|
||||||
%p= t('editor.word')
|
%p= t('editor.word')
|
||||||
|
|
|
@ -582,7 +582,7 @@ en:
|
||||||
underline: Underline
|
underline: Underline
|
||||||
mark: Mark
|
mark: Mark
|
||||||
link: Link
|
link: Link
|
||||||
sup: Superscript
|
super: Superscript
|
||||||
sub: Subscript
|
sub: Subscript
|
||||||
h1: Heading 1
|
h1: Heading 1
|
||||||
h2: Heading 2
|
h2: Heading 2
|
||||||
|
@ -602,4 +602,5 @@ en:
|
||||||
multimedia-remove: Remove media
|
multimedia-remove: Remove media
|
||||||
description: Description for blind people and search engines
|
description: Description for blind people and search engines
|
||||||
url: Address
|
url: Address
|
||||||
|
more: More heading levels
|
||||||
word: "If you're pasting from an hegemonic word processor, please be patient with us, it's not always simple to recover the whole format :)"
|
word: "If you're pasting from an hegemonic word processor, please be patient with us, it's not always simple to recover the whole format :)"
|
||||||
|
|
|
@ -594,7 +594,7 @@ es:
|
||||||
deleted: Tachado
|
deleted: Tachado
|
||||||
underline: Subrayado
|
underline: Subrayado
|
||||||
mark: Resaltado
|
mark: Resaltado
|
||||||
sup: Índice
|
super: Índice
|
||||||
sub: Subíndice
|
sub: Subíndice
|
||||||
link: Vínculo
|
link: Vínculo
|
||||||
h1: Título 1
|
h1: Título 1
|
||||||
|
@ -615,4 +615,5 @@ es:
|
||||||
multimedia-remove: Borrar multimedia
|
multimedia-remove: Borrar multimedia
|
||||||
description: Descripción para personas no videntes y buscadores
|
description: Descripción para personas no videntes y buscadores
|
||||||
url: Dirección
|
url: Dirección
|
||||||
|
more: Más niveles de título
|
||||||
word: "Si estás pegando texto desde un hegemónico editor de texto que empieza con W, por favor tenenos paciencia, no siempre es simple recuperar y respetar todo el formato :)"
|
word: "Si estás pegando texto desde un hegemónico editor de texto que empieza con W, por favor tenenos paciencia, no siempre es simple recuperar y respetar todo el formato :)"
|
||||||
|
|
17
fa.txt
Normal file
17
fa.txt
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
f037 align-center
|
||||||
|
f036 align-left
|
||||||
|
f038 align-right
|
||||||
|
f032 bold
|
||||||
|
f033 italic
|
||||||
|
f0cb list-ol
|
||||||
|
f0ca list-ul
|
||||||
|
f0cd underline
|
||||||
|
f0c1 link
|
||||||
|
f043 tint
|
||||||
|
f1dc heading
|
||||||
|
f12c subscript
|
||||||
|
f12b superscript
|
||||||
|
f0cc strikethrough
|
||||||
|
f093 upload
|
||||||
|
f10d quote-left
|
||||||
|
f0da caret-right
|
|
@ -18,6 +18,7 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/preset-typescript": "^7.12.13",
|
"@babel/preset-typescript": "^7.12.13",
|
||||||
"circular-dependency-plugin": "^5.2.2",
|
"circular-dependency-plugin": "^5.2.2",
|
||||||
|
"fork-awesome": "^1.1.7",
|
||||||
"fork-ts-checker-webpack-plugin": "^6.1.0",
|
"fork-ts-checker-webpack-plugin": "^6.1.0",
|
||||||
"typescript": "^4.1.5",
|
"typescript": "^4.1.5",
|
||||||
"webpack-dev-server": "^3.11.0"
|
"webpack-dev-server": "^3.11.0"
|
||||||
|
|
|
@ -3207,6 +3207,11 @@ forever-agent@~0.6.1:
|
||||||
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
|
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
|
||||||
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
|
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
|
||||||
|
|
||||||
|
fork-awesome@^1.1.7:
|
||||||
|
version "1.1.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/fork-awesome/-/fork-awesome-1.1.7.tgz#1427da1cac3d1713046ee88427e5fcecb9501d21"
|
||||||
|
integrity sha512-IHI7XCSXrKfUIWslse8c/PaaVDT1oBaYge+ju40ihL2ooiQeBpTr4wvIXhgTd2NuhntlvX+M5jYHAPTzNlmv0g==
|
||||||
|
|
||||||
fork-ts-checker-webpack-plugin@^6.1.0:
|
fork-ts-checker-webpack-plugin@^6.1.0:
|
||||||
version "6.1.0"
|
version "6.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.1.0.tgz#7581a6ccd7cbbed9ecce3de64fb1f599d7a2990b"
|
resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.1.0.tgz#7581a6ccd7cbbed9ecce3de64fb1f599d7a2990b"
|
||||||
|
|
Loading…
Reference in a new issue