Información

3 de mayo de 2013 Día 104 del quinto año - Historia


9:15 AM EL PRESIDENTE pronuncia comentarios
Museo de Antropología, Ciudad de México, México

11:25 AM EL PRESIDENTE se reúne con empresarios mexicanos
Museo de Antropología, Ciudad de México, México

12:25 PM EL PRESIDENTE sale de la Ciudad de México, México en ruta a San José, Costa Rica
Aeropuerto Internacional Benito Juárez, Ciudad de México, México

CST

2:00 PM EL PRESIDENTE llega a San José, Costa Rica
Aeropuerto Internacional Juan Santamaría

2:35 PM EL PRESIDENTE se reúne y saluda con el personal de la Embajada de los Estados Unidos
InterContinental Real Hotel, San José, Costa Rica

3:40 PM EL PRESIDENTE y la Presidenta Chinchilla sostienen una reunión bilateral restringida
Casa Amarilla

3:55 PM EL PRESIDENTE y la Presidenta Chinchilla sostienen una reunión bilateral ampliada
Casa Amarilla

4:30 PM EL PRESIDENTE y la Presidenta Chinchilla realizan un evento cultural con la juventud costarricense
Casa Amarilla

5:15 PM EL PRESIDENTE y la Presidenta Chinchilla realizan una conferencia de prensa
Centro Nacional de Arte y Cultura

6:35 PM EL PRESIDENTE participa en una foto con líderes del Sistema de Integración Centroamericana
Teatro Nacional

7:00 PM EL PRESIDENTE, Presidente Chinchilla y líderes del Sistema de Integración Centroamericana se reúnen para una cena de trabajo
Teatro Nacional


Libertad de expresión

La libertad de expresión & # x2014el derecho a expresar opiniones sin restricciones gubernamentales & # x2014 es un ideal democrático que se remonta a la antigua Grecia. En Estados Unidos, la Primera Enmienda garantiza la libertad de expresión, aunque Estados Unidos, como todas las democracias modernas, pone límites a esta libertad. En una serie de casos históricos, la Corte Suprema de los EE. UU. A lo largo de los años ha ayudado a definir qué tipos de discurso están & # x2014 y no & # x2019t & # x2014 protegidos por la ley de los EE. UU.

Los antiguos griegos fueron pioneros en la libertad de expresión como principio democrático. La palabra griega antigua & # x201Cparrhesia & # x201D significa & # x201C libertad de expresión, & # x201D o & # x201C, para hablar con franqueza. & # X201D El término apareció por primera vez en la literatura griega a fines del siglo V a. C.

Durante el período clásico, la parresía se convirtió en una parte fundamental de la democracia de Atenas. Líderes, filósofos, dramaturgos y atenienses comunes tenían la libertad de discutir abiertamente sobre política y religión y de criticar al gobierno en algunos contextos.


3 de mayo de 2013 Día 104 del quinto año - Historia

Nueva versión internacional
El muro fue terminado el veinticinco de Elul, en cincuenta y dos días.

Nueva traducción viva
Así que el 2 de octubre se terminó el muro, cincuenta y dos días después de que empezáramos.

Versión estándar en inglés
Así que el muro fue terminado el veinticinco del mes de Elul, en cincuenta y dos días.

Biblia de estudio de Berea
Así que el muro se terminó en cincuenta y dos días, el veinticinco de Elul.

Biblia King James
Así que el muro se terminó en el vigésimo quinto día de el mes Elul, en cincuenta y dos días.

Nueva versión King James
Así que el muro se terminó el veinticinco día de Elul, en cincuenta y dos días.

Nueva Biblia Estándar Americana
Así que el muro se completó el veinticinco de el mes Elul, en cincuenta y dos días.

NASB 1995
Así que el muro se terminó el veinticinco del mes de Elul, en cincuenta y dos días.

NASB 1977
Así que el muro se completó el veinticinco de el mes Elul, en cincuenta y dos días.

Biblia ampliada
Así que el muro fue terminado el veinticinco [día] del [mes] Elul, en cincuenta y dos días.

Biblia estándar cristiana
El muro se terminó en cincuenta y dos días, el día veinticinco del mes de Elul.

Biblia estándar cristiana de Holman
El muro se terminó en 52 días, el día veinticinco del mes de Elul.

Versión estándar americana
Así que el muro fue terminado el día veinticinco del mes de Elul, en cincuenta y dos días.

Biblia aramea en inglés sencillo
Y terminó el muro el veinticinco de Elul, en cincuenta y dos días.

Traducción de la Septuaginta de Brenton
Así que el muro se terminó el día veinticinco de la mes Elul, en cincuenta y dos días.

Versión en inglés contemporáneo
El día veinticinco del mes de Elul, el muro fue completamente reconstruido. Habían tardado 52 días.

Biblia de Douay-Rheims
Pero el muro fue terminado el día veinticinco del mes de Elul, en cincuenta días.

Versión revisada en inglés
Así que el muro fue terminado el día veinticinco del mes de Elul, en cincuenta y dos días.

Traducción de buenas noticias
Después de cincuenta y dos días de trabajo, se terminó todo el muro el día veinticinco del mes de Elul.

PALABRA DE DIOS y traducción reg
El muro se terminó el día veinticinco del mes de Elul. El muro tardó 52 días en terminar.

Versión estándar internacional
Así que el muro se terminó el veinticinco de Elul en 52 días.

JPS Tanakh 1917
Así que el muro fue terminado el día veinticinco del mes de Elul, en cincuenta y dos días.

Versión estándar literal
Y el muro se terminó en el veinticinco de Elul, en el día cincuenta y dos.

NET Biblia
Así que el muro se completó el día veinticinco de Elul, en solo cincuenta y dos días.

Biblia inglesa New Heart
Así que el muro fue terminado en el día veinticinco de Elul, en cincuenta y dos días.

Biblia en inglés mundial
Así que el muro fue terminado el veinticinco [día] del [mes] Elul, en cincuenta y dos días.

Traducción literal de Young
Y el muro se terminó en el día veinticinco de Elul, en el día cincuenta y dos

Nehemías 4: 1
Cuando Sanbalat se enteró de que estábamos reconstruyendo el muro, se enfureció y se llenó de indignación. Ridiculizó a los judíos

Nehemías 4: 2
ante sus asociados y el ejército de Samaria, diciendo: "¿Qué están haciendo estos débiles judíos? ¿Podrán restaurar el muro por sí mismos? ¿Ofrecerán sacrificios? ¿Lo completarán en un día? ¿Podrán resucitar estas piedras quemadas de los montículos de escombros? "

Nehemías 7: 1
Cuando la muralla fue reconstruida y puse las puertas en su lugar, se designaron porteros, cantores y levitas.

Así que el muro fue terminado el día veinticinco del mes de Elul, en cincuenta y dos días.

Esdras 6:15 Y esta casa fue terminada el tercer día del mes de Adar, que fue en el sexto año del reinado del rey Darío.

Salmo 1: 3 Y será como árbol plantado junto a corrientes de agua, que da su fruto en su tiempo, tampoco su hoja se marchita, y todo lo que hace prosperará.

Daniel 9:25 Por tanto, conoce y comprende, ese desde la salida del mandamiento de restaurar y edificar Jerusalén hasta el Mesías Príncipe será Siete semanas, y sesenta y dos semanas: la calle se reconstruirá, y el muro, incluso en tiempos de angustia.

Nehemías 4: 1,2 Pero sucedió que cuando Sanbalat se enteró de que habíamos edificado el muro, se enojó y se indignó mucho y se burló de los judíos & # 8230.

(15) En cincuenta y dos días. - El día veinticinco de Elul responde a aproximadamente nuestro 15 de septiembre y, desde el comienzo, el muro comenzó a finales de julio, poco después de la llegada de Nehemías. Si tenemos en cuenta que el muro fue derribado solo parcialmente, que los materiales para la restauración estaban a mano y que se había demostrado la máxima habilidad en la organización de las bandas de obreros, el tiempo no parecerá demasiado corto. No es necesario adoptar la sugerencia de Josefo de que la reconstrucción duró dos años y cuatro meses.

Ellos percibieron que esta obra fue realizada por nuestro Dios. No milagrosamente, sino bajo la sanción y ayuda divinas. Con esta expresión, Nehemías triunfa de inmediato sobre sus enemigos y da la gloria a donde era debida. Su propio papel heroico en la obra se olvida por completo.

Versículo 15. - De modo que el muro fue terminado el día veinticinco del mes de Elul, en cincuenta y dos días. Según Josefo ('Ant. Jud.', 11: 5, y sección 8), el trabajo de restauración ocupó dos años y cuatro meses, o 840 días, en lugar de cincuenta y dos. Y este período se ha pensado mucho más probable que el más pequeño, que los modernos generalmente lo han aceptado, mientras que algunos incluso han propuesto alterar nuestro texto actual de Nehemías mediante la inserción de u-shnathayim, "y dos años", en el final de este verso (Ewald). Pero la autoridad de Josefo en asuntos de historia remota es tan pequeña, y todo el relato de Nehemías es tan armonioso y consistente consigo mismo, que la alteración parece bastante innecesaria. Nehemías deja a Susa en Nisán, probablemente hacia mediados o al final del mes, porque sus preparativos deben haberle llevado algún tiempo. Es probable que tenga casi tres meses de viaje y, por lo tanto, llegará a Jerusalén a mediados de julio, digamos el 15 de julio. Luego descansó tres días, inspeccionó el muro, presentó su plan a los nobles, organizó los grupos de trabajo, y se puso a trabajar. Su objetivo era acelerar las cosas tanto como fuera posible y bien puede haber comenzado la reconstrucción dentro de los diez días de su llegada. Cincuenta y dos días a partir del 25 de julio lo llevarían al 15 de septiembre, que corresponde, en la medida de lo posible, al 25 de Elul. No hay ninguna dificultad en suponer que el muro podría haberse reparado en este espacio. Los materiales estaban listos, los grupos de trabajo eran numerosos, los obreros llenos de celo. Si estimamos la circunferencia del muro en cuatro millas, lo que probablemente está más allá de la verdad, y los grupos de trabajo en cuarenta y dos (Ewald), se deducirá que cada parte tuvo, en promedio, que reparar 168 yardas, o en la tasa de entre tres y cuatro metros por día. Probablemente no se hizo ningún trabajo en los sábados, y puede haber habido uno o dos días de interrupción, cuando el ataque parecía inminente (Nehemías 4: 13-15) pero, por lo demás, el trabajo se llevó a cabo sin pausa desde el amanecer hasta el anochecer (ibid. .ver.21). El muro alcanzó la mitad de su altura en muy poco tiempo (ibid. Ver. 6), luego hubo una breve interrupción, después de lo cual vino el trabajo principal de completar todo el circuito a su altura máxima. Es posible que los cincuenta y dos días se cuenten desde el "regreso al trabajo" (ibid. Ver. 15).

Se completó
& # 1493 & # 1463 & # 1514 & # 1468 & # 1460 & # 1513 & # 1473 & # 1456 & # 1500 & # 1463 & # 1501 & # 1433 (wat & # 183ti & # 353 & # 183lam)
Conjuntivo waw & # 124 Verbo - Qal - Imperfecto consecutivo - tercera persona del singular femenino
Strong's 7999: Estar seguro, ser completado, ser amigable, corresponder


3. Estados Unidos originalmente quería construir un canal en Nicaragua, no en Panamá.

A lo largo de la década de 1800, Estados Unidos, que quería un canal que uniera el Atlántico y el Pacífico por razones económicas y militares, consideró a Nicaragua como un lugar más factible que Panamá. Sin embargo, esa visión cambió gracias en parte a los esfuerzos de Philippe-Jean Bunau-Varilla, un ingeniero francés que había estado involucrado en los dos proyectos del canal de France & # x2019s. A fines de la década de 1890, Bunau-Varilla comenzó a presionar a los legisladores estadounidenses para que compraran los activos del canal francés en Panamá, y finalmente convenció a varios de ellos de que Nicaragua tenía volcanes peligrosos, lo que hizo que Panamá fuera la opción más segura.

En 1902, el Congreso autorizó la compra de los activos franceses. Sin embargo, al año siguiente, cuando Colombia, de la que Panamá entonces formaba parte, se negó a ratificar un acuerdo que permitía a Estados Unidos construir un canal, los panameños, con el aliento de Bunau-Varilla y la aprobación tácita del presidente Theodore Roosevelt, se rebelaron contra Colombia y declaró la independencia de Panamá & # x2019s. Poco después, el Secretario de Estado de los Estados Unidos, John Hay, y Bunau-Varilla, actuando como representante del gobierno provisional de Panamá y # x2019, negociaron el Tratado Hay-Bunau-Varilla, que le dio a Estados Unidos el derecho a una zona de más de 500 millas cuadradas en que podría construir un canal, la Zona del Canal sería controlada a perpetuidad por los estadounidenses. En total, Estados Unidos desembolsaría unos $ 375 millones para construir el canal, que incluía un pago de $ 10 millones a Panamá como condición del tratado de 1903, y $ 40 millones para comprar los activos franceses.

Un siglo después de que Estados Unidos completara el Canal de Panamá, un enlace navegable a través de Nicaragua sigue siendo una posibilidad: en 2013, una empresa china anunció que había llegado a un acuerdo de $ 40 mil millones con el gobierno de Nicaragua por los derechos para construir tal vía fluvial.


O Salmos 33: 4-5, 6-7, 12-13, 20 y 22

R. (5b) La tierra está llena de la bondad del Señor.

4 Recta es la palabra del SEÑOR,
y todas sus obras son dignas de confianza.
5 Ama la justicia y el derecho
de la bondad del SEÑOR la ​​tierra está llena.
R. La tierra está llena de la bondad del Señor.

6 Por la palabra del SEÑOR fueron hechos los cielos
por el aliento de su boca todo su anfitrión.
7 El recoge las aguas del mar como en un frasco
en los sótanos confina el abismo.
R. La tierra está llena de la bondad del Señor.

12 Bendita la nación cuyo Dios es el SEÑOR,
el pueblo que ha elegido para su propia herencia.
13 Desde los cielos, el SEÑOR mira hacia abajo
ve a toda la humanidad.
R. La tierra está llena de la bondad del Señor.

20 Nuestra alma espera al SEÑOR,
quien es nuestra ayuda y nuestro escudo.
22 Que tu misericordia, oh SEÑOR, sea con nosotros
que han puesto nuestra esperanza en ti.
R. La tierra está llena de la bondad del Señor.


Pruebas publicadas y conjuntos de elementos de amplificador

Las pruebas publicadas son representativas del contenido y las habilidades incluidas en las pruebas SOL de Virginia y se proporcionan para ayudar a comprender el formato de las pruebas y las preguntas. Se proporcionan conjuntos de elementos de prueba en lugar de pruebas publicadas completas para algunos cursos SOL, ya que el banco de elementos de prueba para esos cursos no puede admitir una versión completa. No se pueden proporcionar tablas de puntuación bruta a escala de puntuación para los conjuntos de elementos de prueba porque no representan formularios de prueba completos. Del mismo modo, no se puede proporcionar una tabla de puntuación bruta a escala de puntuación para el componente MC / TEI de la prueba de redacción de fin de curso porque no representa un formulario de prueba completo.

La versión en línea de las pruebas o los conjuntos de elementos de prueba ya no está disponible porque el software de entrega de pruebas ha cambiado. La versión en PDF contendrá la clave de respuestas para todos los elementos del examen o del conjunto de elementos del examen.

Los documentos PDF para pruebas y conjuntos de elementos de prueba publicados en la primavera de 2015 y la primavera de 2014 muestran imágenes de los elementos de prueba tal como aparecieron en un formato de prueba en línea. Debido a la variabilidad en los monitores de computadora, el color de un elemento puede aparecer de manera diferente en un monitor en comparación con otro.


Reglas y regulaciones pertinentes de la Junta Electoral del Estado de Nueva York

& sect 6201.2 Uso de encuestas de opinión pública

Ningún candidato, partido político o comité intentará promover el éxito o la derrota de un candidato divulgando directa o indirectamente o haciendo que se divulguen los resultados de una encuesta relacionada con un candidato para dicho cargo o puesto, a menos que dentro de las 48 horas posteriores a dicha fecha. divulgación, proporcionan la siguiente información sobre la encuesta a la junta o al funcionario con quien el candidato con quien se relaciona dicha encuesta debe presentar declaraciones o copias de las declaraciones de los recibos y gastos de la campaña:

  1. El nombre de la persona, partido u organización que contrató o encargó la votación y / o pagó por ella.
  2. El nombre y la dirección de la organización que realizó la encuesta.
  3. El tamaño numérico de la muestra total de la encuesta, el área geográfica cubierta por la encuesta y cualquier característica especial de la población incluida en la muestra de la encuesta.
  4. La redacción exacta de las preguntas formuladas en la encuesta y la secuencia de tales preguntas en la medida en que se divulgaron los resultados de dichas preguntas o en la medida en que dichas preguntas fueran preparatorias de las preguntas formuladas que se publicaron y podrían haber influido en las respuestas de los encuestados a la encuesta. preguntas de la encuesta publicadas.
  5. El método de votación, ya sea por entrevista personal, teléfono, correo u otro.
  6. El período de tiempo durante el cual se realizó la encuesta.
  7. El número de personas en la muestra de la encuesta: el número de personas contactadas que respondieron a cada pregunta específica de la encuesta, el número de personas contactadas que no respondieron.
  8. Los resultados de la encuesta en relación con las preguntas que deben divulgarse de conformidad con la subdivisión (d) de esta sección.

& sec. 6204.1 Especificación de objeciones a las peticiones de designación y nominación independiente.

  1. Cualquier persona que presente objeciones generales a cualquier petición de designación o nominación independiente presentada ante la Junta Estatal de Elecciones y que, a partir de entonces, presente especificaciones de sus objeciones a dicha petición ante dicha junta, lo hará de acuerdo con las disposiciones de la Sección 6-154 de la Ley de Elecciones. . Todas estas especificaciones deberán cumplir sustancialmente con los siguientes requisitos:
    1. El número de volumen, el número de página y el número de línea de cualquier firma objetada en cualquier petición se establecerán en detalle. Además, cualquier parte de cualquier petición o cualquier línea de firma o declaración de un testigo a la que se objete se identificará específicamente y se darán las razones de dicha objeción.
    2. Se indicará el número total de firmas objetadas y se agruparán todas las objeciones relacionadas con una sola línea de firma.
    3. Se pueden usar símbolos y / o abreviaturas para establecer objeciones, siempre que se adjunte a las especificaciones una hoja que explique el significado de dichos símbolos y / o abreviaturas.

    & sect6215.1 Reglas para presentar peticiones de designación y nominación.

    1. Las hojas de una petición se numerarán secuencialmente al pie de cada hoja.
    2. Todas las peticiones que contengan diez o más hojas deberán ir acompañadas de una portada.
    3. Cualesquiera dos o más hojas de petición se sujetarán de forma segura por cualquier medio que mantenga las páginas juntas en orden numérico.
    4. Las hojas de petición se pueden unir para formar uno o más volúmenes.
    5. Los volúmenes individuales de una petición se archivarán de la siguiente manera:
      1. Con respecto a las peticiones que se presentan ante la Junta Electoral de la ciudad de Nueva York, o las peticiones que se presentan ante otras juntas electorales que contienen candidatos para más de un cargo público o de partido que no son colindantes, cada volumen de cada petición deberá llevar un número de identificación, que se obtendrá de acuerdo con la Sección 6215.3, infra. El número de identificación asignado se inscribirá en el anverso del volumen. Si la persona o personas que presentan la petición no han inscrito un número de identificación y la petición consta de varios volúmenes, cada volumen de la petición se numerará por separado en el frente de la misma. Solo se puede usar un número de identificación para identificar un volumen de petición.
      2. Cualquier Junta Electoral fuera de la Ciudad de Nueva York puede adoptar un sistema de presentación de peticiones para todas las peticiones utilizando números de identificación como se establece en la Sección 6215.3. La Junta podrá adoptar dicho sistema mediante la aprobación de una regla al menos dos meses antes del primer día para circular peticiones. La regla se presentará en la junta electoral del condado y en la junta electoral estatal.
      3. Con respecto a todas las demás peticiones que contengan diez o más hojas, cada volumen de la petición deberá tener una portada asegurada al frente de dicho volumen.

      & sect6215.2 Cubiertas

      1. Una portada deberá contener la siguiente información:
        1. El número de oficina y distrito (cuando corresponda) para el que se realiza cada designación y nominación, el nombre y la dirección de residencia de cada candidato y el número de volúmenes que componen la petición.Los nombres y direcciones de los candidatos para el comité del condado pueden establecerse por distrito de la asamblea (o, en la ciudad de Nueva York, por distrito electoral) en un calendario que se adjuntará a la portada. Las portadas de los cargos del comité del condado en la ciudad de Nueva York deberán incluir, además de dicho programa, una lista por distrito electoral de los números de identificación (si se conocen) o el número de volumen, y el número de página donde aparecen dichas firmas para cada elección. distrito.
        2. una identificación de los volúmenes que componen la petición. Cuando se presentan varios volúmenes de conformidad con la Sección 6215.1 (e) (1) o (2) de estas reglas, se puede presentar una sola portada con los volúmenes identificados enumerando el número de identificación de cada volumen, ya sea individual o acumulativamente, y el número total. de volúmenes en la petición. Con respecto a todas las demás peticiones presentadas en múltiples volúmenes, cada volumen tendrá una portada que indicará el número de volumen, dichos volúmenes se numerarán secuencialmente y la portada del primer volumen indicará el número total de volúmenes que componen la petición.
        3. una declaración de que la petición contiene el número, o en exceso, de firmas válidas, requeridas por la Ley Electoral.
        4. Un lugar para la designación opcional de una persona de contacto que no sea el candidato (s) para ser notificado para corregir el incumplimiento de estas regulaciones.
        5. Cuando una petición de designación o nominación independiente involucre a la Oficina del Gobernador, Vicegobernador, Fiscal General, Contralor del Estado, Miembro del Senado del Estado o Miembro de la Asamblea del Estado, la portada deberá contener un lugar para la designación opcional del sitio web oficial de la campaña. información de dirección para publicar en el sitio web de la Junta Estatal de Elecciones de conformidad con la sección 4–123 de la Ley Electoral. Cualquier junta de elecciones que reciba dicha portada o una notificación por escrito separada de conformidad con la sección 6215.9 (b) de esta Parte, que no sea la Junta Estatal de Elecciones, deberá transmitir una copia de dicha portada o notificación por escrito separada a la Junta Estatal de Elecciones. dentro de los tres días hábiles posteriores a su presentación y dichas direcciones de sitios web serán publicadas por la junta estatal en su sitio web tan pronto como sea posible.

        & sect6215.3 Números de identificación, aplicación, distribución y utilización

        1. Los números de identificación serán emitidos por las Juntas Electorales del Estado y del Condado, sin cargo, con el propósito de identificar los volúmenes de peticiones.
        2. La Junta Estatal asignará una serie de códigos de identificación a cada Junta del Condado.
        3. Cualquier persona o personas, individual o conjuntamente, puede obtener uno o más números de identificación, previa solicitud por escrito, de la Junta Electoral. A las personas que no deseen solicitar estos números por adelantado se les asignarán sus peticiones cuando las presenten a la Junta Electoral de acuerdo con la sección 6215.6 (b) de estas reglas. Los números de identificación solo se pueden usar dentro del año calendario para el que se emitieron.
        4. La Junta de Elecciones del Estado promulgará un formulario de solicitud de número de identificación, que será utilizado por cualquier junta de elecciones. La solicitud deberá establecer:
          1. el nombre y la dirección de residencia de cada solicitante para el número de identificación
          2. los números de teléfono diurnos y nocturnos de dicho solicitante
          3. el tipo de petición que se presentará con el número de identificación (es decir, designación, nominación, oportunidad de votar)
          4. la fecha de la elección
          5. el Nombre de la Parte u Organismo Independiente y (6) el número de números de identificación solicitados. Cada solicitud deberá estar firmada por cada solicitante y estará fechada.

          & sect6215.4 Varios candidatos nombrados en una petición

          1. Todas las firmas que aparecen en un volumen de petición se aplicarán a todos los candidatos nombrados en ese volumen, a menos que la portada especifique lo contrario.
          2. En el caso de que no aparezcan los mismos candidatos en todas y cada una de las hojas de la petición, en la portada se indicará qué firmas corresponden a qué candidato, indicando el nombre del candidato, el número de identificación o el número de volumen, y la número de página de las firmas correspondientes. Las firmas en dichas páginas pueden identificarse mediante rangos numéricos especificados (por ejemplo, páginas 1 a 15, páginas 15-45).

          & sect6215.5 Presentación de peticiones

          1. Ni la solicitud ni la emisión de un número de identificación constituyen la presentación de una petición.
          2. Las peticiones se presentarán ante la Junta Electoral correspondiente según lo establece la Ley de Elecciones. El funcionario o la Junta respaldará el día, la hora y el minuto de recepción de dichas peticiones. Dicho funcionario o Junta llevará un libro, el cual estará abierto a la inspección pública, en el cual se anotará el nombre del candidato y el volumen o números de identificación de las peticiones que se hayan radicado y la hora de su radicación.

          & sect6215.6 Construcción de reglas cumplimiento sustancial

          1. Excepto como se establece específicamente en este documento, estas reglas se interpretarán libremente y se ignorarán los defectos técnicos cuando haya habido un cumplimiento sustancial y cuando no se requiera una construcción estricta para la prevención del fraude.
          2. El hecho de no obtener un número de identificación o inscribir un número de identificación en una o más peticiones o volúmenes de peticiones no invalidará dicha petición o volumen de petición. El funcionario o la Junta que reciba tal petición o volumen de petición asignará números de identificación a tal petición o volumen de petición, inscribirá el número de identificación en la petición o volumen y registrará el número de identificación de dicha petición o volumen. En tales casos, se considerará que la persona o personas que presentan la petición o el volumen de la petición para su presentación es el solicitante del número de identificación, o en el caso de que las personas que presenten la petición o el volumen de la petición no puedan ser identificadas, los candidatos nombrados en el petición o volumen de petición se considerará el solicitante o solicitantes.

          & sect6215.7 Determinaciones cura de conformidad con la Sección 6-134 (2) de la Ley Electoral

          1. Dentro de los dos (2) días hábiles siguientes a la recepción de la petición, la Junta ante la cual se presentó dicha petición revisará la petición para determinar si la petición cumple con la portada y los requisitos obligatorios de este reglamento. Dicha revisión se limitará a los asuntos que aparezcan en el anverso de los documentos. Tal revisión, y tal determinación, se hará sin perjuicio de la determinación por parte de la Junta de objeciones y especificaciones de las objeciones presentadas de conformidad con las disposiciones de la Ley Electoral.
          2. En el caso de que, luego de la revisión realizada de conformidad con el párrafo (a) anterior, la Junta determine que una petición no cumple con este reglamento, la Junta notificará inmediatamente al candidato o candidatos nombrados en la petición de su determinación y las razones de la misma. .
          3. La notificación de una determinación de incumplimiento se dará mediante notificación por escrito depositando dicha notificación el día de dicha determinación con un servicio de entrega al día siguiente, para entrega al día siguiente, el siguiente día hábil o por entrega personal el día después de la determinación al candidato o la persona de contacto, si se designa, en la dirección indicada en la petición. La notificación se dará por entrega al día siguiente o entrega personal únicamente, a menos que el candidato haya presentado ante la Junta una autorización por escrito, firmada por el candidato, para que la Junta dé la notificación por transmisión por fax. En el caso de que el candidato haya autorizado la notificación por transmisión por fax, la Junta lo notificará al candidato o la persona de contacto, si fuere designada, por transmisión por fax el día de la determinación al número indicado por el candidato y, en Además, envíe una copia de la determinación al candidato.
          4. Un candidato puede, dentro de los tres (3) días hábiles posteriores a la fecha de la determinación de que la petición no cumple con estas regulaciones, subsanar la violación de estas regulaciones. Las deficiencias de la portada pueden corregirse mediante la presentación de una portada modificada. La Junta Electoral debe recibir dicha curación o corrección a más tardar el tercer día hábil siguiente a dicha determinación.
          5. Si la petición es una para tener la oportunidad de votar, entonces la primera persona nombrada en el comité que reciba notificaciones o solicitantes para el número o números de identificación bajo los cuales se presentó la petición se considerará el & quotcandidato & quot a los efectos de los subpárrafos. (b), (c) y (d) anteriores.

          El primer encuentro de Wilson con los disciplinarios de la NHL tuvo que ver con un golpe el 17 de diciembre del Brayden Schenn de los Flyers, cuando Wilson cargó desde la línea azul y niveló a Schenn en las tablas de los extremos. Wilson fue expulsado y la obra provocó una audiencia telefónica con el Departamento de Seguridad Pública. La liga finalmente decidió en contra de una suspensión y en su lugar lanzó un video extenso que explica su decisión de perdonar a Wilson.

          Este artículo ha sido actualizado desde su publicación original para reflejar la información disciplinaria completa de Wilson.


          El discurso se pronunció originalmente en 1978, justo en medio de la era Carter, y con su timbre folclórico y su discurso sobre Dios, las palabras de Paul Harvey se destacaron en medio de la corriente de anuncios que iban desde las salaces hasta lo ridículo y sentimental en el siglo XXI. CBS.

          Esta New York Times El obituario sitúa políticamente bien a Harvey y describe el papel que desempeñó en la vida estadounidense:

          En su apogeo, que duró desde la década de 1950 hasta la de 1990, la telenovela al aire dos veces al día de Harvey fue uno de los programas de radio más populares. Audiencias de hasta 22 millones de personas sintonizaron 1.300 estaciones con una voz que había sido una institución estadounidense desde que la mayoría de ellos podía recordar.

          Al igual que Walter Winchell y Gabriel Heatter antes que él, personalizó las noticias de radio con sus opiniones de derecha, pero las mezcló con sus propias marcas registradas: un timbre hipnótico, pausas prolongadas para el efecto, historias conmovedoras de estadounidenses promedio y observaciones populares que evocaban el corazón, los valores familiares y la charla sencilla y antigua que se escuchaba alrededor de la mesa el domingo.

          "Hola, estadounidenses", ladró. "¡Este es Paul Harvey! ¡Esperen yy por Newwws!"

          Criticó a los estafadores de la asistencia social y defendió la pena de muerte. Le preocupaba la deuda nacional, el gran gobierno, los burócratas que carecían de sentido común, los padres permisivos, los radicales de izquierda y Estados Unidos sucumbiendo a la decadencia moral. Defendió el individualismo rudo, el amor a Dios y al país, y la decencia fundamental de la gente común.

          Aquí está el texto de su discurso, que se hizo famoso durante el Super Bowl:

          Y en el octavo día, Dios miró hacia el paraíso planeado y dijo: "Necesito un cuidador". Entonces Dios hizo un granjero.

          Dios dijo: "Necesito a alguien dispuesto a levantarse antes del amanecer, ordeñar vacas, trabajar todo el día en el campo, ordeñar vacas de nuevo, cenar y luego ir a la ciudad y quedarse hasta pasada la medianoche en una reunión de la junta escolar". Entonces Dios hizo un granjero.

          "Necesito a alguien con brazos lo suficientemente fuertes como para hacer crujir un ternero y, sin embargo, lo suficientemente gentil como para dar a luz a su propio nieto. Alguien a quien llamar cerdos, domesticar maquinaria cascarrabias, volver a casa hambriento, tener que esperar el almuerzo hasta que su esposa termine de alimentar a las damas visitantes y decirles a las damas para estar seguro y volver muy pronto, y en serio ". Entonces Dios hizo un granjero.

          Dios dijo: "Necesito a alguien dispuesto a pasar la noche sentado con un potrillo recién nacido. Y verlo morir. Luego secarle los ojos y decir: 'Quizás el año que viene'". Necesito a alguien que pueda dar forma al mango de un hacha a partir de un brote de caqui, herrar un caballo con un trozo de llanta de automóvil, que pueda hacer arneses con los cables descontrolados, alimentar sacos y restos de zapatos. Y que, en tiempo de siembra y temporada de cosecha, termine su Cuarenta horas a la semana para el martes al mediodía, luego, a diferencia de la 'espalda del tractor', invirtió otras setenta y dos horas ". Entonces Dios hizo un granjero.

          Dios tenía que tener a alguien dispuesto a andar por los surcos a doble velocidad para llevar el heno antes que las nubes de lluvia y, sin embargo, detenerse en el medio del campo y correr para ayudar cuando vea el primer humo del lugar de un vecino. Entonces Dios hizo un granjero.

          Dios dijo: "Necesito a alguien lo suficientemente fuerte para talar árboles y levantar fianzas, pero lo suficientemente amable para domesticar corderos y destetar cerdos y atender a las pollitas de peine rosa, que detenga su cortadora durante una hora para entablillar la pata rota de una alondra del prado". . Tenía que ser alguien que arara profundo y recto y no cortara esquinas. Alguien para sembrar, desyerbar, alimentar, criar y rastrillar y disco y arar y plantar y atar el vellón y colar la leche y reponer el autoalimentador y Termine una dura semana de trabajo con un viaje de cinco millas a la iglesia.

          "Alguien que uniría a una familia con los lazos suaves y fuertes de compartir, que se reiría y luego suspiraría y luego respondería, con ojos sonrientes, cuando su hijo dice que quiere pasar su vida 'haciendo lo que hace papá'". Entonces Dios hizo un granjero.

          Su entrega completa de esos comentarios con un telón de fondo de imágenes en honor a los agricultores:


          3 de mayo de 2013 Día 104 del quinto año - Historia

          '[ t]' continuar endif let l: k_v = split (l: g) if l: k_v [0] == ': foreground' let l: gui_color = '' let l: found_gui_color = 0 for l: color in split (l: k_v [1], ',') si l: color =

          '^ #' sea l: found_gui_color = 1 sea l: res_faces = l: res_faces. 'guifg ='. l: color elseif l: color! = '' let l: gui_color = l: color let l: res_faces = l: res_faces. 'ctermfg ='. l: color endif endfor if! l: found_gui_color && l: gui_color! = '' let l: res_faces = l: res_faces. 'guifg ='. l: gui_color endif elseif l: k_v [0] == ': background' let l: gui_color = '' let l: found_gui_color = 0 for l: color in split (l: k_v [1], ',') if l : color =

          '^ #' deje l: found_gui_color = 1 deje l: res_faces = l: res_faces. 'guibg ='. l: color elseif l: color! = '' let l: gui_color = l: color let l: res_faces = l: res_faces. 'ctermbg ='. l: color endif endfor if! l: found_gui_color && l: gui_color! = '' let l: res_faces = l: res_faces. 'guibg ='. l: gui_color endif elseif l: k_v [0] == ': peso' || l: k_v [0] == ': inclinado' || l: k_v [0] == ': decoración' if index (l: style, l: k_v [1]) == -1 call add (l: style, l: k_v [1]) endif endif elseif type (l : g) == 1 "TODO emacs interpreta el color y determina automáticamente" si debe establecerse como color de primer plano o de fondo let l: res_faces = l: res_faces. 'ctermfg ='. l: k_v [1]. 'guifg ='. l: k_v [1] endif endfor endfor sea l: s = '' para l: i en l: style si l: s == '' sea l: s = l: i si no sea l: s = l: s. ','. l: i endif endfor if l: s! = '' let l: res_faces = l: res_faces. 'término ='. l: s. 'cterm ='. l: s. 'gui ='. l: s endif elseif type (a: faces) == 1 "TODO emacs interpreta el color y determina automáticamente" si debe establecerse como color de primer plano o de fondo let l: res_faces = l: res_faces. 'ctermfg ='. a: caras. 'guifg ='. a: faces endif return l: res_faces endfunction function! s: ReadTodoKeywords (palabras clave, todo_headings) let l: default_group = 'Todo' para l: i en a: keywords if type (l: i) == 3 call s: ReadTodoKeywords (l: i, a: todo_headings) continue endif if l: i == '|' let l: default_group = 'Question' continue endif "quitar la clave de acceso let l: _i = substitute (l: i," (. * $ "," "," ") let l: group = l: default_group para l: j en g: org_todo_keyword_faces if l: j [0] == l: _i dejo l: group = 'org_todo_keyword_face_'. l: _i llamo OrgExtendHighlightingGroup (l: default_group, l: group, OrgInterpretFaces (l: j [1])) break endif endfor exec 'coincidencia de sintaxis org_todo_keyword_'. l: _i. '/ * <1, > s <1, > zs'. l: _i. '/'. a: todo_headings exec 'hola def link org_todo_keyword_ '. l: _i.' '. l: group endfor endfunction endif call s: ReadTodoKeywords (g: org_todo_keywords, s: todo_headings) unlet! s: todo_headings "Error de región de sincronización de propiedades matchgroup = org_properties_delimiter start = / ^ s *: PROPIEDADES: s * $ / end = / ^ s *: END: s * $ / contiene = org_property keepend syn coincidencia org_property / ^ s *: [^ t:] +: s + [^ t] / contenido contiene = org_property_value syn match org_property_value /:szs.*/ contenido hi def link org_properties_delimiter PreProc hi def link org_property Statement hi def link org_pro perty_value Constante "Timestamps" syn match org_timestamp / () / "syn match org_timestamp / () /" syn match org_timestamp / () / "- syn match org_timestamp / (- ) /" - - syn coincidencia org_timestamp / (- ) / syn coincidencia org_timestamp / () / "[2003-09-16 mar] syn coincidencia org_timestamp_inactive / ( [ d d d d- d d- d d a a a ] ) / "[2003-09-16 Tue 12:00] syn match org_timestamp_inactive / ( [ d d d d- d d - d d a a a d d: d d ] ) / "[2003-09-16 mar] - [2003-09-16 mar] sincronización sincronizada org_timestamp_inactive / ( [ d d d d- d d- d d a a a ] - [ d d d d- d d- d d a a a ] ) / "[2003-09-16 Tue 12:00] - [2003-09-16 Tue 12:00] syn match org_timestamp_inactive / ( [ d d d d- d d- d d a a a d d: d d ] - [ d d d d- d d- d d a a a d d: d d ] ) / syn match org_timestamp_inactive /([%%(diary-float.+])/ hi def link org_timestamp PreProc hi def link org_timestamp_inactive Comment "Listas let s: listLeader =" ^ s * [ + * -] s * "exec" syn match org_list_description / ". s: listLeader." zs. <-> ze :: / " hi def link org_list_description Identificador "Fecha límite / Programación sincronizada org_deadline_scheduled / ^ s * (DEADLINE | SCHEDULED ): / hi def link org_deadline_scheduled PreProc" Sincronización de tablas con org_table /^s*|.*/ contains = org_timestamp, org_timestamp_inactive, hyperlink, org_table_separator, org_table_horizontal_line syn match org_table_separator / (^ s * | [- +] + | ? || ) / content hi def link org_table_separator Tipo "Hyperlinks syntax match hyperlink" [ <2 > [^] [] * (] [[^] [] * ) ? ] <2> "contiene = hipervínculoBracketsLeft, hipervínculoURL, hipervínculoBracketsRight contenidoin = TODA la sintaxis coincide con hipervínculoBracketsLeft contenido" [ <2 > "ocultar sintaxis coincidir hipervínculo URL contenida" [^] [] * ] ["ocultar sintaxis coincidir hipervínculoBracketsRight contenido" ] <2> "ocultar hipervínculo de enlace de alta definición Subrayado" Comentarios coincidencia de sintaxis org_comment /^#.*/ hola def link org_comment Sintaxis del comentario / orgtodo.vim [[[1 47 syn match org_todo_key / [ zs [^]] * ze ] / hi def link org_todo_key Identificador let s: todo_headings = '' let s: i = 1while s: i = 7.3 con soporte Python cumplido. "¡finalice endif if! existe ("b: did_ftplugin") "configuración predeterminada de emacs setlocal comments- = s1: / *, mb: *, ex: * / conceallevel = 2 concealcursor = nc tabstop = 8 shiftwidth = 8 commentstring = # \% s" registrar combinaciones de teclas si no se han registrado antes si existe ("g :loaded_org") python ORGMODE.register_keybindings () endif endif "cargar el complemento solo una vez si & cp || existe (" g :loaded_org ") finalizar endif let g :loaded_org = Complementos de configuración general de 1 "que deben cargarse y su orden si! existe ('g: org_plugins') &&! existe ('b: org_plugins') let g: org_plugins = ['ShowHide', '|', 'Navigator', 'EditStructure', '|', 'Hyperlinks', '|', 'Todo', 'TagsProperties', 'Fecha', 'Agenda', 'Varios', '|','Exportar'] endif if! existe ('g: org_syntax_highlight_leading_stars') &&! existe ('b: org_syntax_highlight_leading_stars') let g: org_syntax_highlight_leading_stars = 1 endif "asegúrese de que el complemento de repetición se esté cargando (o no) intente llamar a repeat # set () ¡captura la función endtry! OrgRegisterMenu () python ORGMODE.register_menu función! () python ORGMODE.unregister_menu () endfunction function! OrgDeleteUnusedDocument (bufnr) python OrgRegisterMenu () | endif au BufLeave *: if & filetype == "org" | llamar OrgUnregisterMenu () | endif au BufDeleten )) augroup END "Expande nuestra ruta python: p: h '). '/org. '--opciones ='. expandir (': p: h'). '/org.cnf' ftplugin / orgmode / plugins / Agenda.py [[[1255 # - * - codificación: utf-8 - * - desde fecha y hora importar fecha importar sistema operativo desde orgmode importar ORGMODE, configuraciones desde orgmode importar get_bufnumber desde orgmode import get_bufname de orgmode import echoe from orgmode.keybinding import Keybinding, Plug from orgmode.menu import Submenu, ActionEntry import vim class Agenda (objeto): u "" "El complemento Agenda usa liborgmode.agenda para mostrar las vistas de la agenda. La tarea principal es formatear la agenda desde liborgmode.agenda. También todas las asignaciones: saltar de la agenda a todo, etc. se realizan aquí. "" "def __init __ (self): u" "" Initialize plugin "" "object .__ init __ (self) # entradas de menú que este complemento debería crear self.menu = ORGMODE.orgmenu + Submenu (u'Agenda ') # combinaciones de teclas para este complemento # las combinaciones de teclas también se registran a través del menú, por lo que solo # enlaces adicionales deben colocarse en esta variable self. combinaciones de teclas = [] # comandos para este complemento self.commands = [] @classmethod def _switch_to (cls, bufname, v im_commands = None): u "" "Cambia al búfer con bufname. También se ejecuta una lista de vim.commands (si se proporciona). TODO: esto debe extraerse y mejorarse para crear una forma fácil de usar para crear búferes / saltar a búferes. De lo contrario, habrá varias formas de abrir búferes en vimorgmode. "" "cmds = [u'botright split org:% s '% bufname, u'setlocal buftype = nofile', u'setlocal modifiable ', u'setlocal nonumber', # llamar a opendoc () al ingresar el elemento de todo original u 'nnoremap: exec "py ORGMODE.plugins [u ' Agenda ']. opendoc ()"', u'nnoremap: exec "py ORGMODE.plugins [u 'Agenda ']. opendoc (switch = True)" ', u'nnoremap: exec "py ORGMODE.plugins [u ' Agenda ']. opendoc (split = True)"', # statusline u'setlocal statusline = Org \% s '% bufname] if vim_commands: cmds .extend (vim_commands) para cmd en cmds: vim.command (cmd.encode (u'utf-8 ')) @classmethod def _get_agendadocuments (self): u "" "Devuelve los documentos de organización de los archivos de agenda return None si no Se definen los documentos de la agenda. TODO: ¿quizás convertir esto en un decorador? "" "# cargar archivos org de agenda agenda_files = settings.get (u'org_agenda_files ', u', ') si no es agenda_files o agenda_files ==', ': echoe ((u" No hay org_agenda_files definidos. Use: let "u "g: org_agenda_files = ['

          /org/index.org '] para agregar archivos "u" a la vista de agenda. ")) return agenda_files = [os.path.expanduser (f) para f en agenda_files] para agenda_file en agenda_files: vim.command ((u 'badd% s'% agenda_file) .encode (u'utf-8 ')) # determina el nr búfer de los archivos de agenda agenda_nums = [get_bufnumber (fn) para fn en agenda_files] # recopila todos los documentos de los archivos de agenda y crea la agenda devuelve [ORGMODE.get_document (i) para i en agenda_nums si i no es None] @classmethod def opendoc (cls, split = False, switch = False): u "" "Si estás en la vista de agenda, salta al documento al que pertenece el artículo de la línea actual. cls.line2doc se usa para eso. : split: si es True, abre el documento en una nueva ventana dividida. : cambiar: si es Verdadero, cambie a otra ventana y abra el documento allí. "" "fila, _ = vim.current.window.cursor try: bufname, bufnr, destrow = cls.line2doc [fila] excepto: return # recargar el archivo fuente si no está cargado si get_bufname (bufnr) es None: vim. comando ((u'badd% s '% bufname) .encode (u'utf-8')) bufnr = get_bufnumber (bufname) tmp = cls.line2doc [fila] cls.line2doc [bufnr] = tmp # eliminar el antiguo endry del cls.line2doc [fila] si se divide: vim.command ((u "sbuffer% s"% bufnr) .encode (u'utf-8 ')) elif switch: vim.command (u "wincmd w" .encode (u 'utf-8')) vim.command ((u "búfer% d"% bufnr) .encode (u'utf-8 ')) else: vim.command ((u "búfer% s"% bufnr) .encode (u'utf-8 ')) vim.command ((u "normal!% dgg"% (destrow + 1)). encode (u'utf-8')) @classmethod def list_next_week (cls): agenda_documents = cls ._get_agendadocuments () si no es agenda_documents: return raw_agenda = ORGMODE.agenda_manager.get_next_week_and_active_todo (agenda_documents) # crear búfer en la parte inferior cmd = [u'setlocal filetype = orgagenda ',] cls._switch_to (u'AGENDA) # line' un dic con el mapeo: # línea en la agenda buffer -> documento fuente # Es fácil saltar al documento correcto de esta manera cls.line2doc = <> # formato de texto para la agenda last_date = raw_agenda [0] .active_date final_agenda = [u'Week Agenda: ', unicode (last_date) ] para i, h en enumerate (raw_agenda): # insertar información de fecha para cada nueva fecha (no datetime) si unicode (h.active_date) [1:11]! = unicode (last_date) [1:11]: today = date .today () # inserte una cadena "HOY" adicional si h.active_date.year == today.year y h.active_date.month == today.month y h.active_date.day == today.day: section = unicode (h.active_date) + u "HOY" today_row = len (final_agenda) + 1 else: section = unicode (h.active_date) final_agenda.append (sección) # update last_date last_date = h.active_date bufname = os.path.basename ( vim.buffers [h.document.bufnr-1] .name) bufname = bufname [: - 4] if bufname.endswith (u'.org ') else bufname formated = u "% (bufname) s (% (bufnr) d)% (todo) s% (title) s "% <'bufname': bufname, 'bufnr': h.document.bufnr, 'todo': h.todo, 'title': h.tit le> final_agenda.append (formateado) cls.line2doc [len (final_agenda)] = (get_bufname (h.document.bufnr), h.document.bufnr, h.start) # mostrar agenda vim.current.buffer [:] = [i.encode (u'utf-8 ') para i en final_agenda] vim.command (u'setlocal nomodifiable conceallevel = 2 concealcursor = nc'.encode (u'utf-8')) # intenta saltar a la posición de hoy prueba: vim.command ((u'normal! % sgg '% today_row) .encode (u'utf-8')) excepto: pass @classmethod def list_all_todos (cls): u "" "Lista todos los todos en todos los archivos de agenda en un búfer." "" agenda_documents = cls. _get_agendadocuments () si no es agenda_documents: return raw_agenda = ORGMODE.agenda_manager.get_todo (agenda_documents) cls.line2doc = <> # crear búfer en la parte inferior cmd = [u'setlocal filetype = orgagenda '] cls._switch_to (u'AGENDA', cmd ) # formato de texto de agenda final_agenda = [] para i, h en enumerate (raw_agenda): tmp = u "% s% s"% (h.todo, h.title) final_agenda.append (tmp) cls.line2doc [len (final_agenda)] = (get_bufname (h.document.bufnr), h.document.bufnr, h.start) # show agenda vim.current.buffer [:] = [i.encode (u'utf-8 ') para i in final_agenda] vim.command (u'setlocal nomodifiable conceallevel = 2 concealcursor = nc'.encode (u'utf-8 ')) @classmethod def list_timeline (cls): "" "Muestra una línea de tiempo del búfer actual para obtener una descripción general del archivo actual. "" "raw_agenda = ORGMODE.agenda_manager.get_timestamped_items ([ORGMODE.get_do cument ()]) # crear búfer en la parte inferior cmd = [u'setlocal filetype = orgagenda '] cls._switch_to (u'AGENDA', cmd) cls.line2doc = <> # formato de texto de la agenda final_agenda = [] para i, h en enumerate (raw_agenda): tmp = u "% s% s"% (h.todo, h.title) final_agenda.append (tmp) cls.line2doc [len (final_agenda)] = (get_bufname (h.document.bufnr) ), h.document.bufnr, h.start) # show agenda vim.current.buffer [:] = [i.encode (u'utf-8 ') for i in final_agenda] vim.command (u'setlocal nomodificable nivel de ocultación = 2 concealcursor = nc'.encode (u'utf-8 ')) def register (self): u "" "Registro del complemento. Los enlaces de teclas y otras inicializaciones deben realizarse aquí. "" "self.keybindings.append (Keybinding (u 'cat', Plug (u'OrgAgendaTodo ', u': py ORGMODE.plugins [u" Agenda "]. list_all_todos () '))) self.menu + ActionEntry ( u'Agenda para todos los TODOs ', self.keybindings [-1]) self.keybindings.append (Keybinding (u' caa ', Plug (u'OrgAgendaWeek', u ': py ORGMODE.plugins [u "Agenda"]. list_next_week () '))) self.menu + ActionEntry (u'Agenda for the week', self.keybindings [-1]) self.keybindings.append (Keybinding (u 'caL', Plug (u'OrgAgendaTimeline ', u ': py ORGMODE.plugins [u "Agenda"]. list_timeline ()'))) self.menu + ActionEntry (u'Timeline para este búfer ', self.keybindings [-1]) # vim: set noexpandtab: ftplugin / orgmode / plugins / Hyperlinks.py [[[1 169 # - * - codificación: utf-8 - * - de orgmode import echom, ORGMODE, realign_tags de orgmode.menu import Submenu, Separator, ActionEntry de orgmode.keybinding import Keybinding, Plug , Command import vim import re class Hipervínculos (objeto): u "" "Complemento de hipervínculos" "" def __init __ (self): u "" "Inicializar complemento" "" objeto .__ init __ (self) # menu es intenta este complemento debe crear self.menu = ORGMODE.orgmenu + Submenu (u'Hyperlinks ') # enlaces de teclas para este complemento # enlaces de teclas también se registran a través del menú, por lo que solo # enlaces adicionales deben colocarse en esta variable self.keybindings = [] # comandos para este complemento self.commands = [] uri_match = re.compile (r '^ [<2> (? P [^] [] *) (] [(? P [^] [] *))? ] <2> ') @classmethod def _get_link (cls, cursor = None): u "" "Obtiene el enlace en el que se encuentra el cursor y devuelve su URI y descripción: cursor: None o (Line, Column) : devuelve: Ninguno si no se encontró ningún enlace, de lo contrario o uri y la descripción podrían ser None si no se establece "" "cursor = cursor si el cursor else vim.current.window.cursor line = vim.current.buffer [cursor [0] - 1] .decode (u'utf-8 ' ) # si el cursor está en el último corchete, no se reconoce como un hipervínculo start = line.rfind (u '[[', 0, cursor [1]) if start == -1: start = line.rfind (u '[[', 0, cursor [1] + 2) end = line.find (u ']]', cursor [1]) if end == -1: end = line.find (u ']]', cursor [1] - 1) # extraer enlace if start! = -1 and end! = -1: end + = 2 match = Hyperlinks.uri_match.match (line [start: end]) res = if match: res.update (match.groupdict ()) return res @classmethod def follow (cls, action = u'openLink ', visual = u' '): u "" "Sigue el hipervínculo. Si se llama en una cadena UTL regular determina el resultado. Normalmente se abrirá un archivo con ese nombre.: acción: "copiar" si el enlace debe copiarse al portapapeles, de lo contrario, el enlace se abrirá: visual: "visual" si el enlace de texto universal debe activarse en visual modo: devuelve: URI o None "" "si no es int (vim.eval (u'exists (": Utl ") ')): echom (u'Universal Text Linking plugin no instalado, no se puede continuar.') acción de retorno = u'copyLink 'if action y action.startswith (u'copy') else u'openLink 'visual = u'visual' if visual and visual.startswith (u'visual ') else u' 'link = Hyperlinks._get_link ( ) si el vínculo y el vínculo [u'uri '] no son Ninguno: # llame a UTL con el URI vim.command ((u'Utl% s% s% s'% (acción, visual, vínculo [u'uri ']) ) .encode (u'utf-8 ')) return link [u'uri'] else: # llamar a UTL y dejar que decida qué hacer vim.command ((u'Utl% s% s '% (action, visual )). enco de (u'utf-8 ')) @classmethod @realign_tags def insert (cls, uri = None, description = None): u "" "Inserta un hipervínculo. Si no se proporcionan argumentos, se iniciará una consulta interactiva. : uri: el URI que se abrirá: descripción: una descripción opcional que se mostrará en lugar del URI: devuelve: (URI, descripción) "" "enlace = Hipervínculos._get_link () si enlace: si uri es Ninguno y enlace [u'uri '] no es Ninguno: uri = enlace [u'uri'] si la descripción es Ninguno y el enlace [u'description '] no es Ninguno: descripción = enlace [u'description'] si uri es Ninguno: uri = vim.eval (u'input ("Enlace:", "", "archivo") ') enlace elif: uri = vim.eval (u'input ("Enlace:", "% s", "archivo") '% link [u'uri']) si uri es None: return else: uri = uri.decode (u'utf-8 ') si la descripción es None: description = vim.eval (u'input ("Descripción:" ) '). decode (u'utf-8') elif link: description = vim.eval (u'input ("Descripción:", "% s") '% link [u'description']). decode (u 'utf-8') si la descripción es Ninguna: return cursor = vim.current.window.cursor cl = vim.current.buffer [cursor [0] - 1] .decode (u'utf-8 ') head = cl [ : cursor [1] + 1] si no, link else cl [: link [u'start ']] tail = cl [cursor [1] + 1:] si no link else cl [link [u'end']:] separador = u '' if descripción: separador = u '] [' if uri o descripción: vim.current.buffer [cursor [0] - 1] = (u ''. join ((head, u '[[% s% s% s] ] '% (uri, separador, descripción), cola))). encode (u'utf-8') enlace elif: vim.current.buffer [cursor [0] - 1] = (u ''. join (( head, tail))). encode (u'utf-8 ') def register (self): u "" "Registro del complemento. Deben realizarse combinaciones de teclas y otras inicializaciones. "" "self.commands.append (Command (u'OrgHyperlinkFollow ', u': py ORGMODE.plugins [u" Hyperlinks "]. follow () ')) self.keybindings.append (Keybinding (u'gl', Plug (u'OrgHyperlinkFollow ', self.commands [-1]))) self.menu + ActionEntry (u' & Follow Link ', self.keybindings [-1]) self.commands.append (Command (u'OrgHyperlinkCopy', u ': py ORGMODE.plugins [u "Hipervínculos"]. follow (action = u "copy")')) self.keybindings.append (Keybinding (u'gyl ', Plug (u'OrgHyperlinkCopy', self.commands [- 1]))) self.menu + ActionEntry (u '& Copiar enlace', self.keybindings [-1]) self.commands.append (Command (u'OrgHyperlinkInsert ', u': py ORGMODE.plugins [u "Hipervínculos" ] .insertar () ', argumentos = u' * ')) self.keybindings.append (Keybinding (u'gil', Plug (u'OrgHyperlinkInsert ', self.commands [-1]))) self.menu + ActionEntry (u '& Insertar enlace', self.keybindings [-1]) self.menu + Separator () # buscar el siguiente enlace self.commands.append (Command (u'OrgHyperlinkNextLink ', u ": if search (' [ < 2> zs [^] [] * (] [[^] [] * ) ? Ze ] <2> ',' s ') == 0 | echo' No se encontraron más enlaces . '| endif ")) self.keybindings.append (Keybinding (u'gn ', Plug (u'OrgHyperlinkNextLink', self.commands [-1]))) self.menu + ActionEntry (u '& Next Link', self.keybindings [-1]) # buscar enlace anterior self.commands.append (Command (u'OrgHyperlinkPreviousLink ', u ": if search (' [ <2> zs [^] [] * (] [[^] [] * ) ? ze ] <2> ',' bs ') == 0 | echo 'No se ha encontrado ningún enlace adicional.' | endif ")) self.keybindings.append (Keybinding (u'go ', Plug (u'OrgHyperlinkPreviousLink', self.commands [-1]))) self.menu + ActionEntry (u '& Previous Link', self.keybindings [ -1]) self.menu + Separator () # Descriptive Links self.commands.append (Command (u'OrgHyperlinkDescriptiveLinks ', u': setlocal cole = 2 ')) self.menu + ActionEntry (u' & Descriptive Links ', self .commands [-1]) # Literal Links self.commands.append (Command (u'OrgHyperlinkLiteralLinks ', u': setlocal cole = 0 ')) self.menu + ActionEntry (u' & Literal Links ', self.commands [- 1]) ftplugin / orgmode / plugins / Misc.py [[[1170 # - * - codificación: utf-8 - * - desde orgmode import ORGMODE, apply_count desde orgmode.menu import Submenu from orgmode.keybinding import Keybinding, Plug, MODE_VISUAL, MODE_OPERATOR import vim class Misc (objeto): u "" "Funcionalidad miscelánea" "" def __init __ (self): u "" "Inicializar complemento" "" objeto .__ init __ (self) # entradas de menú que este complemento debe crearse por sí mismo. menu = ORGMODE.orgmenu + Submenu (u'Misc ') # combinaciones de teclas para este complemento # clave Los enlaces también se registran a través del menú, por lo que solo se deben colocar # enlaces adicionales en esta variable self.keybindings = [] @classmethod def jump_to_first_character (cls): header = ORGMODE.get_document (). current_heading () si no es el título: vim.eval (u'feedkeys ("^", "n") '. encode (u'utf-8')) return vim.current.window.cursor = (vim.current.window.cursor [0], header.level + 1) @classmethod def edit_at_first_character (cls): header = ORGMODE.get_document (). Current_heading () si no es título o título.start_vim! = Vim.current.window.cursor [0]: vim.eval (u'feedkeys (" I "," n ") '. Encode (u'utf-8')) return vim.current.window.cursor = (vim.current.window.cursor [0], header.level + 1) vim.command ( u'startinsert'.encode (u'utf-8 ')) # @ repeat @classmethod @apply_count def i_heading (cls, mode = u'visual', selection = u'inner ', skip_children = False): u "" " objeto de texto de encabezado interno "" "encabezado = ORGMODE.get_document (). current_heading () si encabezado: si selección! = u'inner ': encabezado = encabezado si no encabezado.parente else header.parent line_start, col_start = [int (i) for i in vim.eval (u'getpos (" '")'. encode (u'utf-8 ')) [1: 3]] if mode! = u'visual ': line_start = vim.current.window.cursor [0] line_end = line_start start = line_start end = line_end move_one_character_back = u' 'if mode == u'visual' else u'h 'if header.start_vim line_end y no skip_children: end = header.end_vim elif header.end_of_last_child_vim> line_end y skip_children: end = header.end_of_last_child_vim if mode! = u'visual 'y no vim.current.buffer [end - 1]: end - = 1 move_one_character_back = u '' swap_cursor = u'o 'if vim.current.window.cursor [0] == line_start else u' 'if selection == u'inner' y vim.current.window.cursor [0]! = line_start: h = ORGMODE.get_document (). current_heading () if h: header = h visualmode = vim.eval (u'visualmode () '). decode (u'utf-8') if mode == u'visual 'else u 'v' if line_start == start y line_start! = header.start_vim: if col_start in (0, 1): vim.command ((u'normal! % dgg0% s% dgg $% s% s '% (inicio, modo visual, final, mover_un_personaje_back, swap_cursor)). encode (u'utf-8')) else: vim.command ((u'normal!% dgg0 % dl% s% dgg $% s% s '% (inicio,col_start - 1, visualmode, end, move_one_character_back, swap_cursor)). encode (u'utf-8 ')) else: vim.command ((u'normal!% dgg0% dl% s% dgg $% s% s'% (inicio, rumbo.nivel + 1, modo visual, fin, mover_un_carácter_ atrás, cambio_cursor)). codificar (u'utf-8 ')) if selección == u'inner': if mode == u'visual ': return u 'OrgInnerHeadingVisual' if not skip_children else u'OrgInnerTreeVisual 'else: return u'OrgInnerHeadingOperator' if not skip_children else u'OrgInnerTreeOperator 'else: if mode == u'visual': return u'OrgOuterHeadingVisual 'if not skip_Vip_children else else: return u'OrgOuterHeadingOperator 'si no skip_children else u'OrgOuterTreeOperator' modo elif == u'visual ': vim.command (u'normal! gv'.encode (u'utf-8')) # @ repeat @classmethod @apply_count def a_heading (cls, selection = u'inner ', skip_children = False): u "" "un objeto de texto de encabezado" "" encabezado = ORGMODE.get_document (). current_heading () si encabezado: si selección! = u' interior ': encabezado = encabezado si no es encabezado.parente más encabezado.par ent line_start, col_start = [int (i) for i in vim.eval (u'getpos (" '")'. encode (u'utf-8 ')) [1: 3]] start = line_start end = line_end if header.start_vim line_end y no skip_children: end = header.end_vim elif header.end_of_last_child_vim> line_end y skip_children: end = header.end_of_last_child_vim swap_cursor = u'o 'if vim.current.window.cursor_start [0] else == line_end '' vim.command ((u'normal! % dgg% s% dgg $% s '% (inicio, vim.eval (u'visualmode ()'. encode (u'utf-8 ')), final, swap_cursor)). encode (u'utf-8 ')) if selection == u'inner': return u'OrgAInnerHeadingVisual 'si no skip_children else u'OrgAInnerTreeVisual' else: return u'OrgAOuterHeadingVisual 'si no skip_children else u'OrgAOuterTreeVisual' else: vim.command (u'normal! gv'.encode (u'utf-8 ')) def register (self): u "" "Registro del complemento. Deben realizarse enlaces de teclas y otras inicializaciones." "" self.keybindings.append (Keybinding (u' ^ ', Plug (u'OrgJumpToFirstCharacter', u ': py ORGMODE.plugins [u "Misc"]. Jump_to_first_character ()'))) self.keybindings.append (Keybinding (u'I ', Plug (u'OrgEditAtFirstCharacter', u ': py ORGMODE.plugins [u "Misc"]. edit_at_first_character ()'))) self.keybindings.append (Keybinding (u'ih ', Plug (u'OrgInnerHeadingVisual', u ': py ORGMODE.plugins [u "Misc"]. I_heading () ', mode = MODE_VISUAL))) self.keybindings.append (Keybinding (u'ah', Plug (u'OrgAInnerHeadingVisual ', u': py ORGMODE.plugins [u "Misc"]. a_heading () ', modo = M ODE_VISUAL))) self.keybindings.append (Keybinding (u'Oh ', Plug (u'OrgOuterHeadingVisual', u ': py ORGMODE.plugins [u "Misc"]. I_heading (selección = u "externo")', modo = MODE_VISUAL))) self.keybindings.append (Keybinding (u'OH ', Plug (u'OrgAOuterHeadingVisual', u ': py ORGMODE.plugins [u "Misc"]. A_heading (selection = u "external")', mode = MODE_VISUAL))) self.keybindings.append (Keybinding (u'ih ', Plug (u'OrgInnerHeadingOperator', u ': py ORGMODE.plugins [u "Misc"]. i_heading (mode = u "operator")' , mode = MODE_OPERATOR))) self.keybindings.append (Keybinding (u'ah ', u': normal Vah ', mode = MODE_OPERATOR)) self.keybindings.append (Keybinding (u'Oh', Plug (u'OrgOuterHeadingOperator ',': py ORGMODE.plugins [u "Misc"]. i_heading (mode = u "operator", selection = u "external") ', mode = MODE_OPERATOR))) self.keybindings.append (Keybinding (u'OH ', u': VOH normal ', modo = MODE_OPERATOR)) self.keybindings.append (Keybinding (u'ir', Plug (u'OrgInnerTreeVisual ', u': py ORGMODE.plugins [u "Misc"]. i_heading ( skip_children = True) ', modo = MODE_VISUAL))) self.keybinding s.append (Keybinding (u'ar ', Plug (u'OrgAInnerTreeVisual', u ': py ORGMODE.plugins [u "Misc"]. a_heading (skip_children = True)', mode = MODE_VISUAL))) self.keybindings. append (Keybinding (u'Or ', Plug (u'OrgOuterTreeVisual', u 'py ORGMODE.plugins [u "Misc"]. i_heading (selection = u "external", skip_children = True)', mode = MODE_VISUAL))) self.keybindings.append (Keybinding (u'OR ', Plug (u'OrgAOuterTreeVisual', u ': py ORGMODE.plugins [u "Misc"]. a_heading (selection = u "external", skip_children = True)', modo = MODE_VISUAL))) self.keybindings.append (Keybinding (u'ir ', Plug (u'OrgInnerTreeOperator', u ': py ORGMODE.plugins [u "Misc"]. I_heading (mode = u "operator")', mode = MODE_OPERATOR))) self.keybindings.append (Keybinding (u'ar ', u': normal Var ', mode = MODE_OPERATOR)) self.keybindings.append (Keybinding (u'Or', Plug (u'OrgOuterTreeOperator ' , u ': py ORGMODE.plugins [u "Misc"]. i_heading (mode = u "operator", selection = u "outside", skip_children = True)', mode = MODE_OPERATOR))) self.keybindings.append (Keybinding (u'OR ', u': VOR normal ', modo = MODE_OPERAT O)) ftplugin / orgmode / plugins / __ init__.py [[[1 1 # - * - codificación: utf-8 - * - ftplugin / orgmode / plugins / Navigator.py [[[1313 # - * - codificación: utf -8 - * - desde orgmode import echo, ORGMODE, apply_count desde orgmode.menu import Submenu, ActionEntry desde orgmode.keybinding import Keybinding, MODE_VISUAL, MODE_OPERATOR, Plug from orgmode.liborgmode.documents import Direction import vim class Navigator (objeto): u "" "Implementar la navegación en documentos en modo org" "" def __init __ (self): object .__ init __ (self) self.menu = ORGMODE.orgmenu + Submenu (u '& Navigate Headings') self.keybindings = [] @classmethod @ apply_count def parent (cls, mode): u "" "Enfocar encabezado principal: devuelve: encabezado principal o Ninguno" "" header = ORGMODE.get_document (). current_heading () si no encabezado: if mode == u'visual ': vim.command (¡u'normal! gv'.encode (u'utf-8 ')) else: echo (u'No se ha encontrado ningún encabezado') return si no hay encabezado.parent: if mode == u'visual ': vim.command (u'normal! gv' .encode (u'utf-8 ')) else: echo (u'No se encontró ningún encabezado principal') return p = encabezado.parent if mode == u'visual ': cls._change_visual_selection (encabezado, p, dirección = Dirección. BACKWARD, parent = True) else: vim.current.window.cursor = (p.start_vim, p.level + 1) return p @classmethod @apply_count def parent_next_sibling (cls, mode): u "" "Enfoca al próximo hermano del padre : devuelve: encabezado del siguiente hermano del padre o Ninguno "" "encabezado = ORGMODE.get_document (). current_heading () si no es encabezado: if mode == u'visual ': vim.command (u'normal! gv'.encode (u 'utf-8')) else: echo (u'No se ha encontrado ningún encabezado ') return si no es encabezado.parente o no encabezado.parente.siguiente_sibling: if mode == u'visual': vim.command (u'normal! gv '.encode (u'utf-8')) else: echo (u'No se encontró ningún encabezado principal ') return ns = encabezado.parent.next_sibling if mode == u'visual': cls._change_visual_selection (encabezado, ns, dirección = Dirección .FORWARD, parent = False) modo elif == u'operator ': vim.current.window.cursor = (ns.start_vim, 0) else: vim.current.window.cursor = (ns.start_vim, ns.level + 1) return ns @classmethod def _change_visual_selection (cls, current_heading, header, direction = Direction.FORWARD, noheadingfound = False, parent = False): current = vim.current.window.cursor [0] line_start, col_start = [int (i ) para i en vim.eval (u'getpos (" '")'. encode (u'utf-8 ')) [1: 3]] f_start = encabezado.start_vim f_end = encabezado.end_vim swap_cursor = True #> if current == line_start: if (direction == Direction.FORWARD y line_end> #> if f_start> # focus rumbo AQUÍ else: if direction == Direction.FORWARD: if line_end> else: # focus rumbo AQUÍ #> if line_start> f_start y line_end> f_end y no parent: line_end = f_end swap_cursor = False elif (line_start> f_start o line_start == f_start) y line_end> #> #> # focus rumbo AQUÍ más: if direction == Direction.FORWARD: if line_end 0 y (col_start - 1) 0 y (col_en d - 1) ") '. encode (u'utf-8')) [1: 3]] if line_start> = header.start_vim y line_end> header.start_vim: focus_heading = encabezado else: focus_heading = encabezado # hasta ahora no Se ha encontrado que el siguiente enfoque debe estar en si no focus_heading: si no skip_children y dirección == Dirección.FORWARD y header.children: focus_heading = header.children [0] elif direction == Direction.FORWARD y header.next_sibling: focus_heading = rumbo.next_sibling elif direction == Direction.BACKWARD y header.previous_sibling: focus_heading = rumbo.previous_sibling si no skip_children: while focus_heading.children: focus_heading = focus_heading.children [-1] else: if direction == Dirección.FORWARD: focus_heading = current_heading.next_heading else: focus_heading = current_heading.previous_heading noheadingfound = False si no focus_heading: si el modo en (u'visual ', u'operator'): # el cursor parece estar en el último o primer encabezado de este # documento y realiza otra operación siguiente / anterior ración focus_heading = rumbo noheadingfound = True else: if direction == Direction.FORWARD: echo (u'Ya enfocando el último encabezado ') else: echo (u'Ya enfocando el primer encabezado') return if mode == u'visual ': cls ._change_visual_selection (current_heading, focus_heading, direction = direction, noheadingfound = noheadingfound) modo elif == u'operator ': if direction == Direction.FORWARD y vim.current.window.cursor [0]> = focus_heading.start_vim: vim. current.window.cursor = (focus_heading.end_vim, len (vim.current.buffer [focus_heading.end] .decode (u'utf-8 '))) else: vim.current.window.cursor = (focus_heading.start_vim, 0) else: vim.current.window.cursor = (focus_heading.start_vim, focus_heading.level + 1) if noheadingfound: return return focus_heading @classmethod @apply_count def previous (cls, mode, skip_children = False): u "" "Focus encabezado anterior "" "return cls._focus_heading (mode, direction = Direction.BACKWARD, skip_children = skip_children) @classmethod @apply_count def next (cls, mode, skip_ch ildren = False): u "" "Foco en el siguiente encabezado" "" return cls._focus_heading (modo, dirección = Dirección.FORWARD, skip_children = skip_children) def register (self): # modo normal self.keybindings.append (Keybinding (u 'g <', Plug ('OrgJumpToParentNormal', u ': py ORGMODE.plugins [u "Navigator"]. parent (mode = u "normal")'))) self.menu + ActionEntry (u '& Up', self .keybindings [-1]) self.keybindings.append (Keybinding (u'g> ', Plug (' OrgJumpToParentsSiblingNormal ', u': py ORGMODE.plugins [u "Navigator"]. parent_next_sibling (mode = u "normal") '))) self.menu + ActionEntry (u' & Down ', self.keybindings [-1]) self.keybindings.append (Keybinding (u' <', Plug (u'OrgJumpToPreviousNormal', u ': py ORGMODE.plugins [u "Navigator"]. previous (mode = u "normal") '))) self.menu + ActionEntry (u' & Previous ', self.keybindings [-1]) self.keybindings.append (Keybinding (u'> ', Plug (u'OrgJumpToNextNormal', u ': py ORGMODE.plugins [u "Navigator"]. Next (mode = u "normal")'))) self.menu + ActionEntry (u '& Next', self.keybindings [-1]) # modo visual self.keybindings.append (Keyb inding (u'g <', Plug (u'OrgJumpToParentVisual', u ': py ORGMODE.plugins [u "Navigator"]. parent (mode = u "visual")', mode = MODE_VISUAL))) self.keybindings. append (Keybinding (u'g> ', Plug (' OrgJumpToParentsSiblingVisual ', u': py ORGMODE.plugins [u "Navigator"]. parent_next_sibling (mode = u "visual") ', mode = MODE_VISUAL))) self.keybindings .append (Keybinding (u '<', Plug (u'OrgJumpToPreviousVisual ', u': py ORGMODE.plugins [u "Navigator"]. previous (mode = u "visual") ', mode = MODE_VISUAL))) self. keybindings.append (Keybinding (u '>', Plug (u'OrgJumpToNextVisual ', u': py ORGMODE.plugins [u "Navigator"]. next (mode = u "visual") ', mode = MODE_VISUAL))) # modo pendiente de operador self.keybindings.append (Keybinding (u'g <', Plug (u'OrgJumpToParentOperator', u ': py ORGMODE.plugins [u "Navigator"]. parent (mode = u "operator")', mode = MODE_OPERATOR))) self.keybindings.append (Keybinding (u'g> ', Plug (' OrgJumpToParentsSiblingOperator ', u': py ORGMODE.plugins [u "Navigator"]. parent_next_sibling (mode = u "operator") ' , modo = MODE_OPERATOR))) self.keybindin gs.append (Keybinding (u '<', Plug (u'OrgJumpToPreviousOperator ', u': py ORGMODE.plugins [u "Navigator"]. previous (mode = u "operator") ', mode = MODE_OPERATOR))) self .keybindings.append (Keybinding (u '>', Plug (u'OrgJumpToNextOperator ', u': py ORGMODE.plugins [u "Navigator"]. next (mode = u "operator") ', mode = MODE_OPERATOR))) # movimiento inteligente de la sección (omitir niños) # modo normal self.keybindings.append (Keybinding (u '[[', Plug (u'OrgJumpToPreviousSkipChildrenNormal ', u': py ORGMODE.plugins [u "Navigator"]. previous (mode = u "normal", skip_children = True) '))) self.menu + ActionEntry (u'Ne & xt Same Level', self.keybindings [-1]) self.keybindings.append (Keybinding (u ']]', Plug ( u'OrgJumpToNextSkipChildrenNormal ', u': py ORGMODE.plugins [u "Navigator"]. next (mode = u "normal", skip_children = True) '))) self.menu + ActionEntry (u'Pre & vious Same Level', self .keybindings [-1]) # modo visual self.keybindings.append (Keybinding (u '[[', Plug (u'OrgJumpToPreviousSkipChildrenVisual ', u': py ORGMODE.plugins [u "Navigator"]. previous (mode = u "visual" , skip_children = True) ', mode = MODE_VISUAL))) self.keybindings.append (Keybinding (u']] ', Plug (u'OrgJumpToNextSkipChildrenVisual', u ': py ORGMODE.plugins [u "Navegador"]. siguiente ( mode = u "visual", skip_children = True) ', mode = MODE_VISUAL))) # modo pendiente de operador self.keybindings.append (Keybinding (u' [[', Plug (u'OrgJumpToPreviousSkipChildrenOperator', u ': py ORGMODE .plugins [u "Navigator"]. previous (mode = u "operator", skip_children = True) ', mode = MODE_OPERATOR))) self.keybindings.append (Keybinding (u']] ', Plug (u'OrgJumpToNextSkipChildrenOperator' , u ': py ORGMODE.plugins [u "Navigator"]. next (mode = u "operator", skip_children = True)', mode = MODE_OPERATOR))) ftplugin / orgmode / plugins / LoggingWork.py [[[1 40 # - * - codificación: utf-8 - * - desde orgmode import echo, echom, echoe, ORGMODE, apply_count, repeat from orgmode.menu import Submenu, Separator, ActionEntry desde orgmode.keybinding import Keybinding, Plug, Command import vim class LoggingWork (objeto): u "" "Complemento LoggingWork" "" def __init __ (self): u "" "Inicializar p lugin "" "objeto .__ init __ (self) # entradas de menú este complemento debe crear self.menu = ORGMODE.orgmenu + Submenu (u '& Logging work') # combinaciones de teclas para este complemento # las combinaciones de teclas también se registran a través del menú, por lo que solo # enlaces adicionales deben colocarse en esta variable self.keybindings = [] # comandos para este complemento self.commands = [] @classmethod def action (cls): u "" "Algún tipo de acción: devuelve: TODO" "" pass def register (self): u "" "Registro del complemento. Deben realizarse combinaciones de teclas y otras inicializaciones. "" "# una entrada del menú Acción que vincula" combinación de teclas "con la acción": acción "self.commands.append (Command (u'OrgLoggingRecordDoneTime ', u': py ORGMODE.plugins [u" LoggingWork "]. action () ' )) self.menu + ActionEntry (u '& Record DONE time', self.commands [-1]) ftplugin / orgmode / plugins / Todo.py [[[1345 # - * - codificación: utf-8 - * - from orgmode import echom, ORGMODE, apply_count, repeat, realign_tags, settings from orgmode.liborgmode.base import Dirección desde orgmode.menu import Submenu, ActionEntry desde orgmode.keybinding import Keybinding, Plug import vim # temporales estados de todo para diferentes búferes de orgmode ORGTODOSTATES = < > def split_access_key (t): u "" ": t: estado de todo: return: estado de todo y clave de acceso separados (TODO, ACCESS_KEY)" "" if type (t)! = unicode: return (None, None) idx = t.find (u '(') v, k = ((t [: idx], t [idx + 1: -1]) si t [idx + 1: -1] else (t, Ninguno)) si idx ! = -1 else (t, None) return (v, k) class Todo (objeto): u "" "Complemento Todo. Descripción tomada de orgmode.org: Puede usar palabras clave TODO t o indicar diferentes estados secuenciales en el proceso de trabajar en un elemento, por ejemplo: ["TODO", "FEEDBACK", "VERIFY", "|", "DONE", "DELEGATED"] La barra vertical separa las palabras clave TODO ( estados que necesitan acción) de los estados DONE (que no necesitan más acciones). Si no proporciona la barra separadora, el último estado se utiliza como estado DONE. Con esta configuración, el comando ``, d '' alternará una entrada de TODO a FEEDBACK, luego a VERIFY y finalmente a DONE y DELEGATED. "" "def __init __ (self): u" "" Inicializar complemento "" "objeto .__ init __ (self) # entradas de menú este complemento debe crear self.menu = ORGMODE.orgmenu + Submenu (u '& TODO Lists') # combinaciones de teclas para este complemento, las # vinculaciones de teclas también se registran a través del menú, por lo que solo se deben colocar # vinculaciones adicionales en esta variable self.keybindings = [] @classmethod def _get_next_state (cls, current_state, all_states, direction = Direction.FORWARD, interactive = False, next_set = False): u "" ": current_state: el estado actual de las tareas pendientes: all_states: una lista que contiene todos los estados de las tareas pendientes dentro de las sublistas. Los estados de tareas pueden contener claves de acceso: dirección: dirección del estado o cambio de conjunto de palabras clave (adelante / atrás): interactivo: si es interactivo y se especifica más de una secuencia de tareas, abra una ventana de selección: next_set: avance al siguiente conjunto de palabras clave en dirección definida: retorno: devuelve el siguiente estado como una cadena, o NINGUNO si el siguiente estado es ningún estado."" "si no es all_states: return def find_current_todo_state (c, a, stop = 0): u" "": c: estado actual de todo: a: lista de estados de todo: stop: parámetro interno para analizar solo dos niveles de listas: return: primera posición del estado de todo en la lista en la forma (IDX_TOPLEVEL, IDX_SECOND_LEVEL (0 | 1), IDX_OF_ITEM) "" "para i en xrange (0, len (a)): si escribe (a [i]) en ( tupla, lista) y detener = 0: echom (u'Conjunto de palabras clave:% s |% s '% (u', '.join (all_states [ci [0] - 1] [0]), u', '. join (all_states [ci [0] - 1] [1]))) return split_access_key (all_states [ci [0] - 1] [0] [0] if all_states [ci [0] - 1] [0] else all_states [ci [0] - 1] [1] [0]) [0] else: echom (u'Already at the% s keyword set '% (u'first' if direction == Direction.BACKWARD else u'last ')) return current_state else: next_pos = ci [2] + 1 if direction == Direction.FORWARD else ci [2] - 1 if direction == Direction.FORWARD: if next_pos = 0: # seleccionar estado anterior dentro de hecho o todo state return split_access_key (all_states [ci [0]] [ci [1]] [next_pos]) [0] elif ci [1] y len (all_sta tes [ci [0]] [ci [1] - 1]) + next_pos header.level: si current_state no es None y colno: if! existe ("g: org_sav_timeoutlen") | let g: org_sav_timeoutlen = & timeoutlen | set timeoutlen = 1 | endif'.encode (u'utf-8 ')) vim.command (u'au orgmode BufLeave: si existe ("g: org_sav_timeoutlen ") | let & timeoutlen = g: org_sav_timeoutlen | unlet g: org_sav_timeoutlen | endif'.encode (u'utf-8 ')) # hacer de la ventana una ventana temporal y establecer la línea de estado de forma diferente vim.command (u'setlocal tabstop = 16 buftype = nofile timeout timeoutlen = 1 winfixheight'.encode (u'utf-8 ')) vim.command ((u'setlocal statusline = Org todo (% s)'% vim.eval ((u'fnameescape (fnamemodify (bufname (% d), ": t")) '% bufnr) .encode (u'utf-8'))). encode (u'utf-8 ')) vim.command ((u'nnoremap :% sbw '% (vim.eval (u'bufnr ("%")'. encode (u'utf-8 ')),)). encode (u'utf-8')) vim.command (u ' nnoremap: let g: org_state = fnameescape (expand ("")) bw exec "py ORGMODE.plugins [u 'Todo ']. set_todo_state ( '". g: org_state. "')" unlet! g: org_state '.encode (u'utf-8')) si all_states es None: vim.command (u'bw'.encode (u'utf-8 ')) echom (u'No hay estados pendientes disponibles para el búfer% s' % vim.current.buffe r.name) para l en xrange (0, len (all_states)): res = u '' did_done = False para j en xrange (0, 2): if j% s: bw py ORGMODE.plugins [u "Todo" ] .set_todo_state ("% s" .decode (u "utf-8")) '% (k, v)). encode (u'utf-8')) elif v: res + = (u ' t' if res else u '') + v if res: if l == 0: # SOLUCIÓN: el cursor no se puede colocar correctamente # en la primera línea. Se acaba de insertar otra línea y # funciona muy bien vim.current.buffer [0] = u ''. Encode (u'utf-8 ') vim.current.buffer.append (res.encode (u'utf-8') )) # posicionar el cursor del elemento de tarea actual vim.command (u'normal! G'.encode (u'utf-8 ')) current_state = settings.unset (u'org_current_state_% d'% bufnr) found = False if current_state no es None y current_state! = '': para i en xrange (0, len (vim.current.buffer)): idx = vim.current.buffer [i] .find (current_state) if idx! = -1 : vim.current.window.cursor = (i + 1, idx) found = True break si no se encuentra: vim.current.window.cursor = (2, 4) # finalmente hacer búfer no modificable vim.command (u'setfiletype orgtodo'.encode (u'utf-8 ')) vim.command (u'setlocal nomodifiable'.encode (u'utf-8')) # eliminar estados temporales de tareas para el búfer actual del ORGTODOSTATES [bufnr] def register ( self): u "" "Registro del complemento. Deben realizarse combinaciones de teclas y otras inicializaciones." "" self.keybindings.append (Keybinding (u 'ct', Plug (u'OrgTodoToggle ', u': py ORGMODE.plugin s [u "Todo"]. toggle_todo_state (interactivo = False) '))) self.menu + ActionEntry (u' & TODO / DONE / - ', self.keybindings [-1]) self.keybindings.append (Keybinding (u 'd', Plug (u'OrgTodoToggleInteractive ', u': py ORGMODE.plugins [u "Todo"]. toggle_todo_state (interactivo = True) '))) self.menu + ActionEntry (u' & TODO / DONE / - (interactiv ) ', self.keybindings [-1]) # agregar submenú submenu = self.menu + Submenu (u'Select & keyword') self.keybindings.append (Keybinding (u '', Plug (u'OrgTodoForward ', u': py ORGMODE.plugins [u "Todo"]. toggle_todo_state () '))) submenú + ActionEntry (u' & Siguiente palabra clave ', self.keybindings [-1]) self.keybindings.append (Keybinding (u' ', Plug ( u'OrgTodoBackward ', u': py ORGMODE.plugins [u "Todo"]. toggle_todo_state (direction = 2) '))) submenú + ActionEntry (u' & palabra clave anterior ', self.keybindings [-1]) self.keybindings .append (Keybinding (u '', Plug (u'OrgTodoSetForward ', u': py ORGMODE.plugins [u "Todo"]. toggle_todo_state (next_set = True) '))) submenú + ActionEntry (u'Next palabra clave & set' , self.keybindings [-1]) self.ke ybindings.append (Keybinding (u '', Plug (u'OrgTodoSetBackward ', u': py ORGMODE.plugins [u "Todo"]. toggle_todo_state (dirección = 2, next_set = True) '))) submenú + ActionEntry (u 'Anterior & conjunto de palabras clave', self.keybindings [-1]) settings.set (u'org_todo_keywords ', [u'TODO'.encode (u'utf-8'), u '|' .encode (u'utf- 8 '), u'DONE'.encode (u'utf-8')]) settings.set (u'org_todo_prompt_position ', u'botright') vim.command (u'au orgmode BufReadCmd org: todo / *: py ORGMODE.plugins [u "Todo"]. Init_org_todo () '. Encode (u'utf-8')) # vim: set noexpandtab: ftplugin / orgmode / plugins / ShowHide.py [[[1 125 # - * - codificación : utf-8 - * - desde orgmode importar configuraciones desde orgmode importar ORGMODE, aplicar_conta desde orgmode.menu importar Submenu, ActionEntry desde orgmode.keybinding import Keybinding, Plug, MODE_NORMAL importar vim class ShowHide (objeto): u "" "Mostrar Ocultar plugin "" "def __init __ (self): u" "" Inicializar complemento "" "objeto .__ init __ (self) # entradas de menú este complemento debe crear self.menu = ORGMODE.orgmenu + Submenu (u '& Show Hide') # combinación de teclas gs para este complemento # las vinculaciones de teclas también se registran a través del menú, por lo que solo se deben colocar # vinculaciones adicionales en esta variable self.keybindings = [] @classmethod @apply_count def toggle_folding (cls, reverse = False): u "" "Alternar plegado de forma similar a como lo hace orgmode. Esta es solo una función de conveniencia, ¡no dude en usar las combinaciones de teclas z * que ofrece vim para lidiar con el plegado! : reverso: Si es falso, abra el plegado en un nivel, de lo contrario, ciérrelo en uno. "" "d = ORGMODE.get_document () header = d.current_heading () si no es el título: vim.eval (u'feedkeys (" "," n ") '. encode (u'utf-8')) return cursor = vim.current.window.cursor [:] if int (vim.eval ((u'foldclosed (% d) '% header.start_vim) .encode (u'utf-8')))! = -1: if no al revés: # abrir pliegue cerrado p = rumbo.número_de_padres si no p: p = rumbo.nivel vim.command ((u'normal!% dzo '% p) .encode (u'utf-8')) else: # el plegado inverso abre todos los pliegues bajo el cursor vim.command ((u '% d,% dfoldopen!'% (header.start_vim, header.end_of_last_child_vim)). encode (u'utf-8 ')) vim.current.window. cursor = cursor retorno encabezado def fold_depth (h): if int (vim.eval ((u'foldclosed (% d) '% h.start_vim) .encode (u'utf-8')))! = -1: return (h.number_of_parents, True) else: res = [h.number_of_parents + 1] found = False para c en h.children: d, f = fold_depth (c) res.append (d) found | = f return (max ( res), encontrado) def open_fold (h): if h.number_of_parents = open_depth - 1 y int (vim.eval ((u'foldclosed (% d) '% h.start_vim) .encode ( u'utf-8 '))) == -1: vim.command ((u'normal! % dggzc '% (h.start_vim,)). encode (u'utf-8')) # encuentra el pliegue más profundo open_depth, found_fold = fold_depth (encabezado) si no al revés: # pliegues abiertos recursivamente si found_fold: para el niño en el encabezado. children: open_fold (child) else: vim.command ((u '% d,% dfoldclose!'% (cabecera.start_vim, cabecera.end_of_last_child_vim)). encode (u'utf-8 ')) si cabecera.number_of_parents: # restaurar la posición del cursor, podría haber sido cambiado por open_fold vim.current.window.cursor = cursor p = header.number_of_parents si no p: p = header.level # reabrir pliegue nuevamente porque el cierre anterior del pliegue cerró todos los niveles, incluyendo ¡padres! vim.command ((u'normal!% dzo '% (p,)). encode (u'utf-8')) else: # cerrar el último nivel de pliegues close_fold (encabezado) # restaurar la posición del cursor vim.current. window.cursor = cursor return header def register (self): u "" "Registro del complemento. Deben realizarse las combinaciones de teclas y otras inicializaciones." "" # registrar el complemento self.keybindings.append (Keybinding (u '', Plug ( u'OrgToggleFoldingNormal ', u': py ORGMODE.plugins [u "ShowHide"]. toggle_folding () '))) self.menu + ActionEntry (u' & Cycle Visibility ', self.keybindings [-1]) self.keybindings. append (Keybinding (u '', Plug (u'OrgToggleFoldingReverse ', u': py ORGMODE.plugins [u "ShowHide"]. toggle_folding (reverse = True) '))) self.menu + ActionEntry (u'Cycle Visibility & Reverse ', self.keybindings [-1]) self.keybindings.append (Keybinding (u', ', u'zr', mode = MODE_NORMAL)) self.keybindings.append (Keybinding (u '.', u'zm ' , mode = MODE_NORMAL)) para i en xrange (0, 10): self.keybindings.append (Keybinding (u '% d'% (i,), u'zM: set fdl =% d '% i, mode = MODE_NORMAL)) ftplugin / orgmode / plugins / TagsProperties.py [[[1 155 # - * - codificación: utf-8 - * - desde orgmode importar ORGMODE, repetir desde orgmode.menu import Submenu, ActionEntry desde orgmode.keybinding import Keybinding, Plug, Command from orgmode import settings import vim class TagsProperties (objeto): u "" "TagsProperties plugin" "" def __init __ (self): u "" "Inicializar plugin" "" objeto .__ init __ (self) # entradas de menú este plugin debería crear self.menu = ORGMODE .orgmenu + Submenu (u '& TAGS y Propiedades') # vinculaciones de teclas para este complemento # las vinculaciones de teclas también se registran a través del menú, por lo que solo # vinculaciones adicionales deben colocarse en esta variable self.keybindings = [] # comandos para este complemento self .commands = [] @classmethod def complete_tags (cls): u "" "construye una lista de etiquetas y guárdala en la variable b: org_tag_completion" "" d = ORGMODE.get_document () header = d.current_heading () si no es el título : return lead_portion = vim.eval (u'a: ArgLead '). decode (u'utf-8') cursor = int (vim.eval (u'a: CursorPos ')) # extraer actualmente completado ted etiqueta idx_orig = lead_portion.rfind (u ':', 0, cursor) if idx_orig == -1: idx = 0 else: idx = idx_orig current_tag = lead_portion [idx: cursor] .lstrip (u ':') head = lead_portion [: idx + 1] if idx_orig == -1: head = u '' tail = lead_portion [cursor:] # extraer todas las etiquetas del archivo actual all_tags = set () for h in d.all_headings (): for t en h.tags: all_tags.add (t) ignorecase = bool (int (settings.get (u'org_tag_completion_ignorecase ', int (vim.eval (u' & ignorecase '))))) possible_tags = [] current_tags = header.tags para t en all_tags: if ignorecase: if t.lower (). startswith (current_tag.lower ()): possible_tags.append (t) elif t.startswith (current_tag): possible_tags.append (t) vim.command ((u 'let b: org_complete_tags = [% s]'% u ',' .join ([u '"% s% s:% s"'% (head, i, tail) para i en possible_tags])). encode ( u'utf-8 ')) @classmethod @repeat def set_tags (cls): u "" "Establecer etiquetas para el encabezado actual" "" d = ORGMODE.get_document () header = d.current_heading () si no es el encabezado: return # recuperar etiquetas res = No ne if header.tags: res = vim.eval (u'input ("Etiquetas:", ":% s:", "customlist, Org_complete_tags") '% u': '. join (header.tags)) else: res = vim. x: x.strip ()! = u '', res.decode (u'utf-8 '). strip (). strip (u': '). split (u': ')) d.write () return u'OrgSetTags '@classmethod def realign_tags (cls): u "" "Actualiza las etiquetas cuando el usuario termina de editar un encabezado" "" d = ORGMODE.get_document (allow_dirty = True) header = d.find_current_heading () si no es el encabezado: return if vim.current.window.cursor [0] == header.start_vim: header.set_dirty_heading () d.write_heading (header, incluyendo_children = False) @classmethod def realign_all_tags (cls): u "" "Actualiza las etiquetas cuando el usuario termina de editar un encabezado "" "d = ORGMODE.get_document () para el encabezado en d.all_headings (): header.set_dirty_heading () d.write () def register (self): u" "" Registro del complemento. Deben realizarse combinaciones de teclas y otras inicializaciones. "" "# una entrada del menú Acción que vincula" combinación de teclas "con la acción": acción "settings.set (u'org_tag_column ', u'77') settings.set (u'org_tag_completion_ignorecase ', int (vim.eval (u' & ignorecase '))) self.keybindings.append (Keybinding (u' st ', Plug (u'OrgSetTags', u ': py ORGMODE.plugins [u "TagsProperties"]. set_tags ()'))) self.menu + ActionEntry (u'Set & Tags ', self.keybindings [-1]) self.commands.append (Command (u'OrgTagsRealign', u ": py ORGMODE.plugins [u'TagsProperties ']. Realign_all_tags ()")) # solución alternativa para alinear las etiquetas cuando el usuario sale del modo de inserción vim.command (función u "" "Org_complete_tags (ArgLead, CmdLine, CursorPos) python: py ORGMODE.plugins [u'TagsProperties ']. realign_tags ()". encode (u'utf -8 ')) # esto es para el archivo actual vim.command (u "au orgmode InsertLeave: py ORGMODE.plugins [u'TagsProperties']. Realign_tags ()". Encode (u'utf-8 ')) ftplugin / orgmode / plugins / Date.py [[[1260 # - * - codificación: utf-8 - * - importar re desde fecha y hora importar timedelta, fecha, fecha y hora importar vim desde orgmode importar ORGMODE, sett ings, echom, insert_at_cursor, get_user_input de orgmode.keybinding import Keybinding, Plug from orgmode.menu import Submenu, ActionEntry class Fecha (objeto): u "" "Maneja todas las tareas relacionadas con la fecha y la marca de tiempo. TODO: extender la funcionalidad (calendario, repeticiones, rangos). Ver http://orgmode.org/guide/Dates-and-Times.html#Dates-and-Times "" "date_regex = r" d d d d- d d- d d " datetime_regex = r "[AZ] w w d d d d- d d- d d d d: d d>" month_mapping = def __init __ (self): u "" "Initialize plugin" "" object .__ init __ (self) # entradas de menú este plugin debería crear self.menu = ORGMODE.orgmenu + Submenu (u'Dates and Scheduling ') # combinaciones de teclas para esto las vinculaciones de teclas del # complemento también se registran a través del menú, por lo que solo se deben colocar # vinculaciones adicionales en esta variable self.keybindings = [] # comandos para este complemento self.commands = [] # establecer formato de fecha rápida que sea compatible con orgmode try: if int (vim.eval (u'exists (": SpeedDatingFormat") '. encode (u'utf-8'))): vim.command (u ': 1SpeedDatingFormat% Y-% m-% d% a'.encode (u'utf-8 ')) vim.command (u': 1SpeedDatingFormat% Y-% m-% d% a% H:% M'.encode (u'utf-8 ')) else: echom (u' El complemento Speeddating no está instalado. Por favor, instálelo. ') Excepto: echom (u'Speeddating complemento no instalado. Por favor instálelo.') @Classmethod def _modify_time (cls, startdate, modifier): u "" "Modifique la fecha de inicio dada según modificador. Devuelve la nueva fecha o fecha y hora. Consulta http://orgmode.org/manual/The-date_002ftime-prompt.html "" "i f modificador es None o modifier == '' o modifier == '.': return startdate # rm crap from modifier modifier = modifier.strip () # check real date date_regex = r "( d d d d) - ( d d) - ( d d) "coincidencia = re.search (date_regex, modifier) ​​if match: year, month, day = match.groups () newdate = date (int (año), int ( mes), int (día)) # comprobar la fecha abreviada, separada con '-' date_regex = u "( d <1,2>) - ( d +) - ( d +)" match = re.search (date_regex, modifier) ​​if match: year, month, day = match.groups () newdate = date (2000 + int (año), int (mes), int (día)) # verifique la fecha abreviada, separada con '/' # mes / day date_regex = u "( d <1,2>) / ( d <1,2>)" match = re.search (date_regex, modifier) ​​if match: month, day = match.groups () newdate = date (startdate.year, int (month), int (day)) # date debe ser siempre en el futuro si newdate 2009 9 12 date_regex = u "( w w w) ( d <1,2>) ( d <1,2>) "match = re.search (date_regex, modifier) ​​if match: gr = match.groups () day = int (gr [1]) month = int (cls.month_mapping [gr [0] ]) año = 2 000 + int (gr [2]) newdate = date (año, int (mes), int (día)) # comprobar los días como enteros date_regex = u "^ ( d <1,2>) $" match = re. buscar (date_regex, modifier) ​​if match: newday, = match.groups () newday = int (newday) if newday> startdate.day: newdate = date (startdate.year, startdate.month, newday) else: # TODO: SUCIO , arregle esto # esto NO cubre todos los casos extremos newdate = startdate + timedelta (days = 28) newdate = date (newdate.year, newdate.month, newday) # revise los días completos: lun, mar, miércoles, jueves, viernes , Sat, Sun modifier_lc = modifier.lower () match = re.search (u'mon | tue | wed | thu | fri | sat | sun ', modifier_lc) si coincide: weekday_mapping = diff = (weekday_mapping [modifier_lc] - startdate.weekday ())% 7 # use las próximas semanas el día de la semana si el día de la semana actual es el mismo que el modificador if diff == 0: diff = 7 newdate = startdate + timedelta (days = diff) # check para el modificador de días con d coincidencia = re.search (u ' + ( d *) d', modificador) if coincidencia: días = int (coincidencia.groups () [0]) nueva fecha = fecha de inicio + hora delta (días = days) # comprobar el modificador de días sin d match = re.search (u ' + ( d *) | + ( d *)


          Ver el vídeo: História - página 104 3004 (Enero 2022).