mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-22 23:36:21 +00:00
mostrar recuadros de ayuda
This commit is contained in:
parent
cac0cdaf11
commit
2b33ea7edf
9 changed files with 162 additions and 8 deletions
|
@ -14,6 +14,8 @@
|
||||||
//= require turbolinks
|
//= require turbolinks
|
||||||
//= require jquery/dist/jquery.js
|
//= require jquery/dist/jquery.js
|
||||||
//= require jquery.hotkeys/jquery.hotkeys
|
//= require jquery.hotkeys/jquery.hotkeys
|
||||||
|
//= require bootstrap/util
|
||||||
|
//= require bootstrap/alert
|
||||||
//= require bootstrap-markdown/js/bootstrap-markdown
|
//= require bootstrap-markdown/js/bootstrap-markdown
|
||||||
//= require markdown-it/dist/markdown-it
|
//= require markdown-it/dist/markdown-it
|
||||||
//= require select2/dist/js/select2
|
//= require select2/dist/js/select2
|
||||||
|
|
3
app/assets/javascripts/help.js
Normal file
3
app/assets/javascripts/help.js
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
$(document).on('turbolinks:load', function() {
|
||||||
|
$('.alert').alert();
|
||||||
|
});
|
|
@ -8,6 +8,9 @@ class ApplicationController < ActionController::Base
|
||||||
redirect_to sites_path
|
redirect_to sites_path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def markdown
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
# Encontrar un sitio por su ID
|
# Encontrar un sitio por su ID
|
||||||
|
|
61
app/views/application/markdown.haml
Normal file
61
app/views/application/markdown.haml
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
- if request.referer
|
||||||
|
= render 'layouts/breadcrumb', crumbs: [ link_to(t('help.markdown.back'), request.referer) ]
|
||||||
|
|
||||||
|
.row
|
||||||
|
.col
|
||||||
|
%table.table.table-striped.table-responsive-md
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
%th= t('help.markdown.input')
|
||||||
|
%th= t('help.markdown.output')
|
||||||
|
%tbody
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
%code= "**#{t('help.markdown.bold')}**"
|
||||||
|
%td
|
||||||
|
%strong= t('help.markdown.bold')
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
%code= "_#{t('help.markdown.italic')}_"
|
||||||
|
%td
|
||||||
|
%em= t('help.markdown.italic')
|
||||||
|
- 7.times do |i|
|
||||||
|
- next if i == 0
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
%code= "#{'#' * i} #{t('help.markdown.heading')} #{i}"
|
||||||
|
%td= raw "<h#{i}>#{t('help.markdown.heading')} #{i}</h#{i}>"
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
%code= "[#{t('help.markdown.link.text')}](#{t('help.markdown.link.url')})"
|
||||||
|
%td= link_to t('help.markdown.link.text'), t('help.markdown.link.url')
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
%code= "> #{t('help.markdown.quote')}"
|
||||||
|
%td
|
||||||
|
%blockquote.blockquote= t('help.markdown.quote')
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
%code
|
||||||
|
- 3.times do
|
||||||
|
= "* #{t('help.markdown.ul')}"
|
||||||
|
%br
|
||||||
|
%td
|
||||||
|
%ul
|
||||||
|
- 3.times do
|
||||||
|
%li= t('help.markdown.ul')
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
%code
|
||||||
|
- 3.times do |i|
|
||||||
|
= "#{i}. #{t('help.markdown.ol')}"
|
||||||
|
%br
|
||||||
|
%td
|
||||||
|
%ol
|
||||||
|
- 3.times do
|
||||||
|
%li= t('help.markdown.ol')
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
%code= "![#{t('help.markdown.img.text')}](#{t('help.markdown.img.url')})"
|
||||||
|
%td
|
||||||
|
%img{alt: t('help.markdown.img.text'), src: t('help.markdown.img.url')}
|
11
app/views/layouts/_help.haml
Normal file
11
app/views/layouts/_help.haml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
.alert.alert-info.alert-dismissible.fade.show{role: 'alert'}
|
||||||
|
- if help.respond_to? :each
|
||||||
|
%ul
|
||||||
|
- help.each do |h|
|
||||||
|
%li= raw h
|
||||||
|
- else
|
||||||
|
= raw help
|
||||||
|
%button.close{type: 'button',
|
||||||
|
data: { dismiss: 'alert' },
|
||||||
|
'aria-label': t('help.close') }
|
||||||
|
%span{'aria-hidden': true} ×
|
|
@ -23,10 +23,14 @@
|
||||||
= select_tag 'post[dir]',
|
= select_tag 'post[dir]',
|
||||||
options_for_select([[t('posts.ltr'), 'ltr'], [t('posts.rtl'), 'rtl']], direction),
|
options_for_select([[t('posts.ltr'), 'ltr'], [t('posts.rtl'), 'rtl']], direction),
|
||||||
{ class: 'form-control' }
|
{ class: 'form-control' }
|
||||||
|
%small.text-muted.form-text= t('posts.dir_help')
|
||||||
.form-group
|
.form-group
|
||||||
= text_field 'post', 'title', value: @post.title, class: field_class,
|
= label_tag 'post_title', t('posts.title')
|
||||||
placeholder: t('posts.title')
|
= text_field 'post', 'title', value: @post.title, class: field_class
|
||||||
.form-group{class: direction}
|
.form-group{class: direction}
|
||||||
|
= render 'layouts/help', help: [ t('help.markdown.intro'),
|
||||||
|
t('help.distraction_free_html'),
|
||||||
|
t('help.preview_html') ]
|
||||||
= text_area_tag 'post[content]', @post.content, autofocus: true,
|
= text_area_tag 'post[content]', @post.content, autofocus: true,
|
||||||
class: 'post-content'
|
class: 'post-content'
|
||||||
.form-group
|
.form-group
|
||||||
|
@ -35,17 +39,16 @@
|
||||||
class: 'form-control'
|
class: 'form-control'
|
||||||
%small.text-muted.form-text= t('posts.date_help')
|
%small.text-muted.form-text= t('posts.date_help')
|
||||||
.form-group
|
.form-group
|
||||||
|
= render 'layouts/help', help: t('help.autocomplete_html')
|
||||||
= label_tag 'post_categories', t('posts.categories')
|
= label_tag 'post_categories', t('posts.categories')
|
||||||
= select_tag 'post[categories][]',
|
= select_tag 'post[categories][]',
|
||||||
options_for_select(@site.categories, @post.categories),
|
options_for_select(@site.categories, @post.categories),
|
||||||
{ class: 'form-control select2', multiple: 'multiple' }
|
{ class: 'form-control select2', multiple: 'multiple' }
|
||||||
%small.text-muted.form-text= t('posts.tags_help')
|
|
||||||
.form-group
|
.form-group
|
||||||
= label_tag 'post_tags', t('posts.tags')
|
= label_tag 'post_tags', t('posts.tags')
|
||||||
= select_tag 'post[tags][]',
|
= select_tag 'post[tags][]',
|
||||||
options_for_select(@site.tags, @post.tags),
|
options_for_select(@site.tags, @post.tags),
|
||||||
{ class: 'form-control select2', multiple: 'multiple' }
|
{ class: 'form-control select2', multiple: 'multiple' }
|
||||||
%small.text-muted.form-text= t('posts.tags_help')
|
|
||||||
.form-group
|
.form-group
|
||||||
= label_tag 'post_slug', t('posts.slug')
|
= label_tag 'post_slug', t('posts.slug')
|
||||||
= text_field 'post', 'slug', value: @post.slug,
|
= text_field 'post', 'slug', value: @post.slug,
|
||||||
|
|
|
@ -2,6 +2,39 @@ en:
|
||||||
errors:
|
errors:
|
||||||
argument_error: 'Argument `%{argument}` must be an instance of %{class}'
|
argument_error: 'Argument `%{argument}` must be an instance of %{class}'
|
||||||
unknown_locale: 'Unknown %{locale} locale'
|
unknown_locale: 'Unknown %{locale} locale'
|
||||||
|
help:
|
||||||
|
close: 'Close help'
|
||||||
|
markdown:
|
||||||
|
intro: 'The text is formatted using a syntax called Markdwon, a
|
||||||
|
simple format that can be easily written just by remembering some
|
||||||
|
rules, and that can be converted to a web page, or to PDF and ePub
|
||||||
|
files. You can use the buttons below for basic formatting. If
|
||||||
|
you need help, here you have a <a href="/markdown">markdown
|
||||||
|
cheatsheet</a>.'
|
||||||
|
back: 'Go back'
|
||||||
|
input: 'If we write...'
|
||||||
|
output: 'We get...'
|
||||||
|
bold: 'Bold'
|
||||||
|
italic: 'Emphasis'
|
||||||
|
heading: 'Title'
|
||||||
|
link:
|
||||||
|
text: 'A link'
|
||||||
|
url: 'https://example.org'
|
||||||
|
quote: 'A quote from a text we liked'
|
||||||
|
ul: 'Our TODO list'
|
||||||
|
ol: 'Steps for our machiavelic plans'
|
||||||
|
img:
|
||||||
|
text: 'Kéfir island'
|
||||||
|
url: 'https://kefir.red/images/isla.png'
|
||||||
|
distraction_free_html: 'You can a distraction free writing session
|
||||||
|
by clicking the <span class="fa fa-expand"></span> button'
|
||||||
|
preview_html: 'Click the <span class="fa fa-search"></span> preview
|
||||||
|
button to see the results.'
|
||||||
|
autocomplete_html: "Some of these fields can be auto-completed. If
|
||||||
|
you know what to put on them, just start writing and the
|
||||||
|
auto-complete will suggest available options. If the option doesn't
|
||||||
|
exist, finish writing and press <kbd>Enter</kbd> to add a new one.
|
||||||
|
To empty the field, click the × button on your right."
|
||||||
login:
|
login:
|
||||||
email: 'E-mail'
|
email: 'E-mail'
|
||||||
password: 'Password'
|
password: 'Password'
|
||||||
|
@ -36,9 +69,11 @@ en:
|
||||||
tags: 'Tags'
|
tags: 'Tags'
|
||||||
tags_help: 'Comma separated!'
|
tags_help: 'Comma separated!'
|
||||||
categories: 'Categories'
|
categories: 'Categories'
|
||||||
categories_help: 'Comma separated!'
|
tags: 'Tags'
|
||||||
slug: 'Slug'
|
slug: 'Slug'
|
||||||
slug_help: 'This is the name of the article on the URL, ie. /title/. You can leave it empty.'
|
slug_help: 'This is the name of the article on the URL, ie. /title/.
|
||||||
|
You can leave it empty. If you changed the title and you want to
|
||||||
|
change the file name, empty this field.'
|
||||||
cover: 'Cover'
|
cover: 'Cover'
|
||||||
cover_help: 'Path to the cover'
|
cover_help: 'Path to the cover'
|
||||||
layout: 'Layout'
|
layout: 'Layout'
|
||||||
|
|
|
@ -2,6 +2,38 @@ es:
|
||||||
errors:
|
errors:
|
||||||
argument_error: 'El argumento `%{argument}` debe ser una instancia de %{class}'
|
argument_error: 'El argumento `%{argument}` debe ser una instancia de %{class}'
|
||||||
unknown_locale: 'El idioma %{locale} es desconocido'
|
unknown_locale: 'El idioma %{locale} es desconocido'
|
||||||
|
help:
|
||||||
|
close: 'Cerrar ayuda'
|
||||||
|
markdown:
|
||||||
|
intro: 'El formato del texto se llama Markdown. Es un formato
|
||||||
|
simple que puede ser escrito recordando unas pocas reglas y que
|
||||||
|
luego puede ser convertido a una página web, o un PDF, o un ePub.
|
||||||
|
Puedes usar los botones para dar formato básico a tu texto. Para
|
||||||
|
cuestiones más avanzadas, aquí tienes un <a
|
||||||
|
href="/markdown">recordatorio de markdown</a>.'
|
||||||
|
back: 'Volver'
|
||||||
|
input: 'Si escribimos...'
|
||||||
|
output: 'Obtenemos...'
|
||||||
|
bold: 'Negrita'
|
||||||
|
italic: 'Énfasis'
|
||||||
|
heading: 'Título'
|
||||||
|
link:
|
||||||
|
text: 'Un vínculo'
|
||||||
|
url: 'https://ejemplo.org'
|
||||||
|
quote: 'Un recorte de texto que nos gustó'
|
||||||
|
ul: 'Lista de cosas para hacer'
|
||||||
|
ol: 'Pasos para un plan maquiavélico'
|
||||||
|
img:
|
||||||
|
text: 'La isla de Kéfir'
|
||||||
|
url: 'https://kefir.red/images/isla.png'
|
||||||
|
distraction_free_html: 'Puedes escribir sin distracciones presionando el botón <span class="fa fa-expand"></span>'
|
||||||
|
preview_html: 'Utiliza el botón de <span class="fa fa-search"></span> previsualización para ver el texto generado'
|
||||||
|
autocomplete_html: 'Algunos de estos campos se autocompletan. Si ya
|
||||||
|
sabes qué quieres poner, solo empieza a escribir y el autocompletado
|
||||||
|
te sugerirá las opciones disponibles. Si no existe lo que quieres
|
||||||
|
poner, termina de escribir y presiona <kbd>Entrar</kbd> para agregar
|
||||||
|
opciones que aun no existen. Para vaciar las opciones, usa el botón
|
||||||
|
× a la derecha.'
|
||||||
login:
|
login:
|
||||||
email: 'Dirección de correo'
|
email: 'Dirección de correo'
|
||||||
password: 'Contraseña'
|
password: 'Contraseña'
|
||||||
|
@ -34,9 +66,11 @@ es:
|
||||||
date_help: '¡Esto cambia el orden de los artículos!'
|
date_help: '¡Esto cambia el orden de los artículos!'
|
||||||
title: 'Título'
|
title: 'Título'
|
||||||
categories: 'Categorías'
|
categories: 'Categorías'
|
||||||
categories_help: '¡Separadas por comas!'
|
tags: 'Etiquetas'
|
||||||
slug: 'Nombre la URL'
|
slug: 'Nombre la URL'
|
||||||
slug_help: 'Esto es el nombre del artículo en la URL, por ejemplo /título/. Puedes dejarlo vacío.'
|
slug_help: 'Esto es el nombre del artículo en la URL, por ejemplo
|
||||||
|
/título/. Puedes dejarlo vacío. Si cambiaste el título y quieres
|
||||||
|
que la URL cambie, borra el contenido de este campo.'
|
||||||
cover: 'Portada'
|
cover: 'Portada'
|
||||||
cover_help: 'La dirección de la portada'
|
cover_help: 'La dirección de la portada'
|
||||||
layout: 'Plantilla'
|
layout: 'Plantilla'
|
||||||
|
@ -67,6 +101,7 @@ es:
|
||||||
rtl: 'Derecha a izquierda'
|
rtl: 'Derecha a izquierda'
|
||||||
ltr: 'Izquierda a derecha'
|
ltr: 'Izquierda a derecha'
|
||||||
dir: 'Dirección del texto'
|
dir: 'Dirección del texto'
|
||||||
|
dir_help: 'Cambiar la dirección del texto, por ej. el árabe se lee de derecha a izquierda'
|
||||||
logger:
|
logger:
|
||||||
rm: 'Eliminado %{path}'
|
rm: 'Eliminado %{path}'
|
||||||
errors:
|
errors:
|
||||||
|
|
|
@ -3,6 +3,7 @@ Rails.application.routes.draw do
|
||||||
|
|
||||||
get 'login/new', to: 'login#new'
|
get 'login/new', to: 'login#new'
|
||||||
post 'login', to: 'login#create'
|
post 'login', to: 'login#create'
|
||||||
|
get 'markdown', to: 'application#markdown'
|
||||||
|
|
||||||
resources :sites, only: [ :index, :show ] do
|
resources :sites, only: [ :index, :show ] do
|
||||||
resources :posts
|
resources :posts
|
||||||
|
|
Loading…
Reference in a new issue